如何在java中拆分数组中的字符串?

如何在java中拆分数组中的字符串?,java,Java,我已成功地将文件中的字符串放入数组。现在我想从数组中分割字符串,以便创建搜索。 这是文件文本模式 file.txt student ID : 1 student name: dell student id :2 student name:kelly 我的逻辑是: 1从文件中获取字符串并放入数组,即数组[0]包含学生ID:1,[1]包含学生姓名:dell 2现在将当前阵列拆分为其他阵列 现在,任何人请告诉我,我应该做什么,以使数组数据像这样 array[0] = student ID arra

我已成功地将文件中的字符串放入数组。现在我想从数组中分割字符串,以便创建搜索。 这是文件文本模式

file.txt

student ID : 1
student name: dell

student id :2
student name:kelly
我的逻辑是:

1从文件中获取字符串并放入数组,即数组[0]包含学生ID:1,[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]);


            } 

字符串[]myarray=a[0]。拆分:

字符串[]myarray2=a[1]。拆分:

数组[0]=myarray[0]

数组[1]=myarray[1]

数组[2]=myarray2[1]

它应该可以工作。

替换list.addline;在while循环中使用

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方法将列表转换为数组


祝你好运。

为什么要使用两个数组?如果您的文件是a.txt,并且希望执行此操作,则只需使用:as分隔符char并使用标记器,以每4个标记中的第三个标记释放字段学生名:

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();
    }

希望能有所帮助。

看看java.lang.String.Split,因为您是专门查找数组信息的,这不是答案,但您的设计似乎会从使用映射中受益。每个键、值对都是一个id、名称,我已经放置了代码。也许你们现在可以为我的问题提供解决方案如果你使用Scanner类你可以使用useDelimiter方法:String[]a=null;字符串[]myaray=a[0]。拆分:;给我一个错误????有什么想法或者应该粘贴代码吗?当你编辑你的问题时,我正在写,所以我指的是你问题中a点的数组哦,对不起。我还关注stack Form严格规定的语言风格别担心。只是当你添加新代码时,我没有刷新页面,所以我没有阅读。非常感谢各位,也感谢其他人解决了我的问题很高兴知道这有帮助。