我已成功将文件中的字符串放入数组中。现在我想从数组中拆分字符串,以便我可以创建搜索。 这是文件文字模式
file.txt的
student ID : 1
student name: dell
student id :2
student name:kelly
我的逻辑:
1)从文件中获取字符串并放在数组中,即array [0]包含学生ID:1,a [1]包含学生姓名:dell。
2)现在将当前数组拆分为更多数组 现在任何一个请告诉我我该怎么做才能制作这样的数组数据....
array[0] = student ID
array[1] = 1
array[2] =dell
array[3] = student ID
array[4]= 2
array[5] = kelly
.
.
.
我的代码应该怎么做???
BufferedReader br = new BufferedReader(new FileReader(new File("file.txt")));
String line = br.readLine();
List<String> list = new ArrayList<String>();
while(line != null)
{
list.add(line); // add lines in list
line = br.readLine(); // read next line
}
// String[] stringArr= line.split(" : ");
String [] stringArr= list.toArray(new String[0]);
list.add(stringArr[0]);
System.out.println(stringArr[1]);
// System.out.print(stringArr[2]);
}
答案 0 :(得分:0)
string [] myarray = a [0] .split(“:”);
string [] myarray2 = a [1] .split(“:”);
array [0] = myarray [0];
array [1] = myarray [1];
array [2] = myarray2 [1];
它应该有用。
答案 1 :(得分:0)
使用
替换while循环内的list.add(line);
for (String token : line.split(":")) { // Splitting each line with ':'
if (!token.trim().equals("student name")) { // Adding token to list conditionally.
list.add(token);
}
}
然后,您可以轻松调用list.toArray()
方法将列表转换为数组。
答案 2 :(得分:0)
为什么要使用两个数组?如果你的文件是a.txt并且你想这样做,你只需要使用:作为分隔符char并使用一个标记器,释放字段学生名(第四个标记中的第三个):
File file=new File("a.txt");
try {
Scanner scanner = new Scanner(file);
String text="";
while (scanner.hasNextLine())text+=scanner.nextLine()+":";
scanner.close();
StringTokenizer a=new StringTokenizer(text,":");
List<String> arr=new ArrayList<String>();
for(int i=2;a.hasMoreTokens();i++){ //starts from 2 because discharge the third every 4 tokens.
if(i%4==0)a.nextToken();
else arr.add(a.nextToken());
}
String[] array=(String[])arr.toArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
希望它有所帮助。