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
。你可以在这里和那里找到很多例子。我想读取所有文件,然后拆分字符串。当我创建列表时,它向我显示了这个问题:类型列表不是泛型的;无法使用参数对其进行参数化,请检查导入。应该是importjava.util.List代码>当我创建列表时,它向我显示了这个问题:类型列表不是泛型的;无法使用参数对其进行参数化,请检查导入。应该是importjava.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();
}