如何从文本行读取多个字符串值并将其存储到字符串变量(java)
我想从java文本文件中逐行读取,一行包含4个字段,但一个字段可以包含多个单词,例如: 我有这样一行:屏幕商业问题与产品 如何在java中将这三个行字段存储到3个字符串变量中如何从文本行读取多个字符串值并将其存储到字符串变量(java),java,Java,我想从java文本文件中逐行读取,一行包含4个字段,但一个字段可以包含多个单词,例如: 我有这样一行:屏幕商业问题与产品 如何在java中将这三个行字段存储到3个字符串变量中 var1 -> "Screen" var2 -> "Commercial" var3 -> "Problem with product" 这会分割输入。如果从标准输入读取,请使用System.in而不是inputStream: BufferedReader in = new BufferedReader
var1 -> "Screen"
var2 -> "Commercial"
var3 -> "Problem with product"
这会分割输入。如果从标准输入读取,请使用System.in而不是inputStream:
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = in.readLine()) != null) {
String[] split = line.split(" ", 3);
String var1 = split[0]; String var2 = split[1]; String var3 = split[2];
// do whatever is needed...
}
理想情况下,您需要使用某些特定字符来指示字段之间的分隔符。例如,产品的屏幕“商业”问题。然后您可以编写代码,将整行作为输入读取,然后将其划分为子字符串。例如:
File yourFile = new File(/*file path goes here*/);
Scanner sc = new Scanner(yourFile);
String input;
String var1;
String var2;
String var3;
int breakIndex;
while (sc.hasNextLine()) {
input = sc.nextLine();
breakIndex = input.indexOf("|");
var1 = input.substring(0, breakIndex);
input = input.substring(breakIndex+1);
breakIndex = input.indexOf("|");
var2 = input.substring(0, breakIndex);
var3 = input.substring(breakIndex+1);
// do whatever it is you plan to do with those variables here
}
你怎么知道哪个字段有多个单词?它们在文本文件中始终处于相同的位置。另外,发布一些你迄今为止尝试过的代码到哪里去了?zbynekvyskovsky-kvr000,这个拆分的意思是什么:line.split,3;它使用传递的参数作为分隔符拆分字符串,它可以是regexp,因此您可以使用例如+来拥有无限数量的空格。第二个参数限制了字段的数量,所以第二个空格后面的任何字段都是单个字段。