0

我正在尝试找出一种从以下文本文件中读取的方法。我能够获得文本文件中的第一个整数,即 numLines。在那之后,我能够从该行中获取第一个整数,但无法成功获取每个单独的字母组。

for(int i=0; i < numLines; i++){
   numVariables = Integer.parseInt(fin.next());

    for(int z=0; z < numVariables; z++){
        String line = fin.next();

        int numRules = Integer.parseInt(line.substring(0, 1));

        //Everything up until this point is good

        //read and store first capital letter of every line
        String variable = line.substring(2,3);

        //read and store remaining capital letters that correspond to every line separately
    }
}

文本文件

3
2 A CC DD
3 A AA z v
2 F f a
4

2 回答 2

1

我没看到有什么问题。如果你说你有“解析”的问题,你可以尝试:

  • 读一行 ( String line)

  • split它分为两部分。在这里检查: http ://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String , int)

array =line.split(" ", 2)

然后

array[0] is the leading number
array[1] is the rest letters

如果你想要每个部分,你可以split (" ")没有限制。

如果你只想得到那些大写的单词,你可以通过正则表达式来做到:

line.split(" ",2); //array[0] is the leading number

应用于"(?<= )[A-Z]+(?= )"数组[1],你会得到所有大写单词。

那是你要的吗?

于 2013-01-30T16:50:55.430 回答
0
String[] words = line.split(("\\s+"); // Any whitespace
int numRules = Integer.parseInt(words[0]);
for (int j = 1; j < words.length; ++j) {
   String variable = words[j];
}
于 2013-01-30T16:51:10.777 回答