プロが教えるわが家の防犯対策術!

昨日も出したのですが自分で作成してみたんですけどヒントをいただいて作成してみたんですけど間をどうしていいかわからないので教えていただきたく載せました。
よろしくお願いいたします。

コメント部分をつくればいいみたいなのですが…


(1)フォルダにファイルを用意する(CSV形式の文字列のファイル)

(2)最初に文字列をキーボードから入力させる(文字列は半角で5文字まで、それ以外ならば繰り返し入力させる)

(3)フォルダのファイル読み込み、(2)で入力した文字列が含まれている単語をファイルに出力(ファイルは新規作成

例:
読込み元ファイル:
river,request,fire,maybe,best,over,coin,confortable,
today,task,mary,face,popular,music,rock,
mark,fight,replay,listen,pop,
-------------------
入力文字列:fi

ファイル出力結果
fire,

fight,
----------------------
入力文字列:re

ファイル出力結果
request,
fire,
replay



public class Kadai4 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ


String inputString; // ユーザーがキーボードから入力


// ファイルから1行読み込む
String fileString =BufferedReader(FileReader);

StringDetect sDetect = new StringDetect( );// ()の中に入れる

new StringTokenizer( );// ()の中に入れる

if(findMatch(nextToken)){



// ファイルに出す
}


}


public class StringDetect{

private static String inputString = null

// コンストラクタ
public StringDetect(String str){


//ここに入れる


}


public static boolean findMatch(String word){


//wordとinputを比較して部分一致があれば
//true、一致しなければfalseを返す


}




}



}

A 回答 (1件)

魔が差したので作りました。


何か不備があれば自分なりに修正してみてください。
また、これは回答の内容までを保障する記述ではありません。

/**
* execute
*/
public void execute() {

final String loadFile = "c:/data.csv";
final String exportFile = "c:/result.csv";

try {

String keyword = null;
while (true) {

System.out.print("Input a keyword ->");

keyword = this.getWord();

if (this.validate(keyword)) {
break;
}
}

List dataList = this.load(loadFile);

List resultList = new ArrayList();

for (Iterator iterator = dataList.iterator(); iterator.hasNext();) {
String value = (String) iterator.next();
if (this.find(value, keyword)) {
resultList.add(value);
}
}

this.export(exportFile, resultList);

} catch (Exception e) {
e.printStackTrace();
}
}

/**
* get a word from keyboard
*/
private String getWord() throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
return reader.readLine();
}

/**
* validate
*/
private boolean validate(String value) throws Exception {

if (value == null) {
return false;
}

Pattern pattern = Pattern.compile("[0-9a-zA-Z]{1,5}");
Matcher matcher = pattern.matcher(value);

return matcher.matches();
}

/**
* find keyword
*/
private boolean find(String value, String keyword) throws Exception {

if (value == null || keyword == null) {
return false;
}

return value.indexOf(keyword) != -1;
}

/**
* load file
*/
private List load(String fileName) throws Exception {

List dataList = new ArrayList();
BufferedReader reader = null;
FileReader fileReader = null;

try {

fileReader = new FileReader(fileName);
reader = new BufferedReader(fileReader);

String line = null;
while ((line = reader.readLine()) != null) {
String[] array = line.split("[,]");
dataList.addAll(Arrays.asList(array));
}

return dataList;

} finally {
if (fileReader != null) {
try {
fileReader.close();
} catch (Exception e) {
}
}
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
}
}
}
}

/**
* export file
*/
private void export(String fileName, List dataList) throws Exception {

BufferedWriter writer = null;
FileWriter fileWriter= null;

final String separator = ",";

try {

StringBuffer buffer = new StringBuffer();

for (Iterator iterator = dataList.iterator(); iterator.hasNext();) {
buffer.append((String) iterator.next());
buffer.append(separator);
}

fileWriter = new FileWriter(fileName);
writer = new BufferedWriter(fileWriter);

writer.write(buffer.toString(), 0, buffer.length() - 1);
writer.flush();

} finally {
if (fileWriter != null) {
try {
fileWriter.close();
} catch (Exception e) {
}
}
if (writer != null) {
try {
writer.close();
} catch (Exception e) {
}
}
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!