Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取文件行并存储不同类型的变量_Java_Parsing - Fatal编程技术网

Java 读取文件行并存储不同类型的变量

Java 读取文件行并存储不同类型的变量,java,parsing,Java,Parsing,我试图找出一种方法来读取以下文本文件。我能够得到文本文件中的第一个整数,即numLines。在这一点之后,我可以从行中获取第一个整数,但无法成功获取每个字母组 for(int i=0; i < numLines; i++){ numVariables = Integer.parseInt(fin.next()); for(int z=0; z < numVariables; z++){ String line = fin.next();

我试图找出一种方法来读取以下文本文件。我能够得到文本文件中的第一个整数,即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
    }
}

我不知道是什么问题。如果您说您有“解析”问题,您可以尝试:

  • 读一行(
    字符串行

  • 将其拆分为两部分。请点击此处:
    ,int)

array=line.split(“,2)

然后

如果您想要每个部分,您可以无限制地
拆分(“”)

如果您只想获取大写单词,可以使用正则表达式:

line.split(" ",2); //array[0] is the leading number
应用
“(?
String[]words=line.split((“\\s+”);//任何空格
int numRules=Integer.parseInt(字[0]);
for(int j=1;j
您不需要一个列表来存储这些值吗?是的。我在解析它时遇到的问题比存储它更大。但是,是的,一个大小为100的列表或数组都可以工作。@MHZ您的问题不完整-有什么问题吗?很抱歉,请参阅“编辑”。谢谢您的回答。我需要用空格分隔所有字母组,包括小写字母和大写字母e、 @MHZ然后拆分(“”)。获取返回的数组,[0]是数字,其余元素是您想要的。
array[0] is the leading number
array[1] is the rest letters
line.split(" ",2); //array[0] is the leading number
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];
}