Java 在Txt文件中拆分字符串

Java 在Txt文件中拆分字符串,java,split,bufferedreader,filereader,Java,Split,Bufferedreader,Filereader,假设我有一个名为“Keys.txt”的txt文件: 我想把字符串分成一个数组,但我不知道怎么做 我希望结果是 在这样的数组中: Test 1 Test1 2 Test2 3 我已启动此代码: FileReader fr = new FileReader("Keys.txt"); BufferedReader br = new BufferedReader(fr); String str = br.readLine(); br.close(); System.ou

假设我有一个名为
“Keys.txt”
的txt文件:

我想把字符串分成一个数组,但我不知道怎么做 我希望结果是 在这样的数组中:

Test
1
Test1
2
Test2
3
我已启动此代码:

FileReader fr = new FileReader("Keys.txt");
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    br.close();
    System.out.println(str);

您可以按照以下步骤操作:

  • 读取字符串中的当前行,然后在空格(一个或多个)上拆分字符串,这样就有了一个数组,可以将元素存储在列表中
  • 对每一行重复该操作
  • 将列表转换为数组(
    List.toArray()
例如:

List<String> list = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("Keys.txt"))) {

    String str;
    while ((str = br.readLine()) != null) {
        String[] token = str.split("\\s+");
        list.add(token[0]);
        list.add(token[1]);
    }

}
String[] array = list.toArray(new String[list.size()]);

您可以按照以下步骤操作:

  • 读取字符串中的当前行,然后在空格(一个或多个)上拆分字符串,这样就有了一个数组,可以将元素存储在列表中
  • 对每一行重复该操作
  • 将列表转换为数组(
    List.toArray()
例如:

List<String> list = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("Keys.txt"))) {

    String str;
    while ((str = br.readLine()) != null) {
        String[] token = str.split("\\s+");
        list.add(token[0]);
        list.add(token[1]);
    }

}
String[] array = list.toArray(new String[list.size()]);

您可以使用
String.split()

它将在一个或多个空白字符上拆分输入字符串。正如Java API文档所述:

\s
-空白字符:
[\t\n\x0B\f\r]


X+
-
X
,一次或多次。

您可以使用
String.split()
方法(在您的情况下,它是
str.split(\\s+);

它将在一个或多个空白字符上拆分输入字符串。正如Java API文档所述:

\s
-空白字符:
[\t\n\x0B\f\r]


X+
-
X
,一次或多次。

您可以将所有行存储在单个字符串中,用空格分隔,然后将其拆分为所需的数组

FileReader fr = new FileReader("Keys.txt");
BufferedReader br = new BufferedReader(fr);
String str="", l="";
while((l=br.readLine())!=null) { //read lines until EOF
    str += " " + l;
}
br.close();
System.out.println(str); // str would be like " Text 1 Text 2 Text 3"
String[] array = str.trim().split(" "); //splits by whitespace, omiting 
// the first one (trimming it) to not have an empty string member

您可以将所有行存储在单个字符串中,用空格分隔,然后将其拆分为所需的数组

FileReader fr = new FileReader("Keys.txt");
BufferedReader br = new BufferedReader(fr);
String str="", l="";
while((l=br.readLine())!=null) { //read lines until EOF
    str += " " + l;
}
br.close();
System.out.println(str); // str would be like " Text 1 Text 2 Text 3"
String[] array = str.trim().split(" "); //splits by whitespace, omiting 
// the first one (trimming it) to not have an empty string member
FileReader-fr;
字符串temp=null;
List wordsList=new ArrayList();
试一试{
fr=新文件阅读器(“D://Keys.txt”);
BufferedReader br=新的BufferedReader(fr);
而((temp=br.readLine())!=null){
字符串[]字=临时拆分(\\s+);
for(int i=0;i
试试这个

FileReader fr;
字符串temp=null;
List wordsList=new ArrayList();
试一试{
fr=新文件阅读器(“D://Keys.txt”);
BufferedReader br=新的BufferedReader(fr);
而((temp=br.readLine())!=null){
字符串[]字=临时拆分(\\s+);
for(int i=0;i

试一试

你是想用空格分割吗?
str.split(\\s”)
首先,要能够读取文件,而不仅仅是第一行。。然后您只需要使用
String.split
。您可以在这里或那里找到很多示例。我想读取所有文件,然后拆分字符串。您的意思是用空格拆分字符串。拆分(\\s”)
首先,要能够读取文件,而不仅仅是第一行。。然后您只需要使用
String.split
。你可以在这里和那里找到很多例子。我想读取所有文件,然后拆分字符串。当我创建列表时,它向我显示了这个问题:类型列表不是泛型的;无法使用参数对其进行参数化,请检查导入。应该是import
java.util.List当我创建列表时,它向我显示了这个问题:类型列表不是泛型的;无法使用参数对其进行参数化,请检查导入。应该是import
java.util.List
FileReader fr = new FileReader("Keys.txt");
BufferedReader br = new BufferedReader(fr);
String str="", l="";
while((l=br.readLine())!=null) { //read lines until EOF
    str += " " + l;
}
br.close();
System.out.println(str); // str would be like " Text 1 Text 2 Text 3"
String[] array = str.trim().split(" "); //splits by whitespace, omiting 
// the first one (trimming it) to not have an empty string member
    FileReader fr;
    String temp = null;
    List<String> wordsList = new ArrayList<>();
    try {
        fr = new FileReader("D://Keys.txt");

        BufferedReader br = new BufferedReader(fr);
        while ((temp = br.readLine()) != null) {
            String[] words = temp.split("\\s+");
            for (int i = 0; i < words.length; i++) {
                wordsList.add(words[i]);
                System.out.println(words[i]);
            }
        }
        String[] words = wordsList.toArray(new String[wordsList.size()]);
        br.close();

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