私はEclipse IDE上で動作するJavaを使用しています。 私はここでは、このインクリメントを使用してカラムとして機能し、分割後にarraylistに値を追加
//name|money|password
john|900|john321
mark|300|mark321
のようなテキストファイルから
Name: John
Money: 900
Password: john321
Name: Mark
Money: 300
Password: mark321
の成果を達成しようとしていますことは、私が試したものです:私は、変数を使用することにしようとしています
public static void ReadFile() throws IOException {
FileReader rf = new FileReader("Data.dat");
BufferedReader br = new BufferedReader(rf);
String reader;
ArrayList<String> dataInfo = new ArrayList<String>();
while((reader = br.readLine())!=null)
{
dataInfo.add(reader);
} // end of while loop
br.close();
ArrayList<String> name = new ArrayList<String>();
ArrayList<String> money = new ArrayList<String>();
ArrayList<String> password = new ArrayList<String>();
for(int i =0; i<dataInfo.size();i++) {
String[] test = dataInfo.get(i).split("\\|");
int j =0;
for(String data : test) {
//System.out.println(data); // this print like what i wanted from the above outcome i posted
if(j==0){
name.add(data);
System.out.println(name); // This works well.
j++;
}
if(j==1){
password.add(data);
System.out.println(password); //ERROR this print the name instead
j++;
}
if(j==2){
money.add(data);
System.out.println(money); //ERROR this print the name instead
j++;
}
}
}//end of for-loop
for(int k =0;k<name.size();k++)
{
System.out.println("Name: " +name.get(k));
System.out.println("Money: " +money.get(k));
System.out.println("Password: " +password.get(k));
System.out.println("\n");
}
}
jは、プログラムをさらにダウンすると、フィルター検索の名前、金額、パスワードを使用する必要があるため、列として機能します。 forループの繰り返しが必要です。なぜなら、ユーザが削除したいユーザの名前を入力するときに、テキスト全体を削除したいからです。 if(name.get(i) = john) { //delete password.get(i) , money.get(i) }
しかし、今問題は、配列リストに追加した値が常に名前だけであることです。ここで、System.out.println(data)はすべてを出力します。