如何从文本行读取多个字符串值并将其存储到字符串变量(java)

如何从文本行读取多个字符串值并将其存储到字符串变量(java),java,Java,我想从java文本文件中逐行读取,一行包含4个字段,但一个字段可以包含多个单词,例如: 我有这样一行:屏幕商业问题与产品 如何在java中将这三个行字段存储到3个字符串变量中 var1 -> "Screen" var2 -> "Commercial" var3 -> "Problem with product" 这会分割输入。如果从标准输入读取,请使用System.in而不是inputStream: BufferedReader in = new BufferedReader

我想从java文本文件中逐行读取,一行包含4个字段,但一个字段可以包含多个单词,例如: 我有这样一行:屏幕商业问题与产品

如何在java中将这三个行字段存储到3个字符串变量中

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,因此您可以使用例如+来拥有无限数量的空格。第二个参数限制了字段的数量,所以第二个空格后面的任何字段都是单个字段。