有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的正则表达式拆分行

我想解析一个几乎相同的程序。该程序由两行组成,如下所示:

java.io.*;
java.lang.*;

我使用的是一个库,它读取整个程序,并使用命令将其拆分

String[] words = sourceCode.split("[\\s+|\\W+]");

它所产生的结果如下

words[0] = "Java"
words[1] = "io"
words[2] = ""
words[3] = ""
words[4] = ""
words[5] = ""
words[6] = Java
words[7] = "lang"
words[8] = ""
words[9] = ""
words[10] = ""
words[11] = ""

然而,我想先把程序分成几行,然后在一行的组件上。也就是说,我正在使用

String[] allLines = file1String.split("[\n]");
String[][] wordsOfALine =new String[allLines.length][];
for (int i=0;i<allLines.length;i++){
       wordsOfALine[i] = allLines[i].split("[\\s+|\\W+]").clone();
}

然而,我得到的是

wordsOfALine[0][0] = "Java"
wordsOfALine[0][1] = "io"
wordsOfALine[1][0] = "Java"
wordsOfALine[1][1] = "lang"

因此,所有的空话现在都消失了。你知道我怎样才能把他们带回来吗?我需要和图书馆保持一致

谢谢


共 (1) 个答案

  1. # 1 楼答案

    请尝试以下操作,并根据需要进行修改

    String[] allLines = file1String.split("[\n]");
    String[] wordsOfALine = {};
    int k = 0;
    for (int i=0 ;i<allLines.length;i++){
       String[] words= allLines[i].split("[\\r\\n]+]");
       for(int j = 0; j < lines.length; j++){
          wordsOfALine[k++] : " + words[j]);
       }
    }