java 中的复杂字符串拆分方法

Complex string split method in java

基本上,我试图能够读取由某些条件分隔的每一行 (\n \s , ) 并将字符串存储到节点 A 和节点 B 中以用于节点添加,但不确定在哪里开始或弄清楚该怎么做。请帮助!

public static void main(String[] args) {

    try{
        String oneLine;
        FileReader theFile = new FileReader("src/Test.txt");
        BufferedReader inFile = new BufferedReader(theFile);
        Node A = new Node(0,null);

        while((oneLine = inFile.readLine()) != null) {

            String numbers[]= oneLine.split("\n");

            for (int i=0;i<numbers.length;i++){
                 int a = Integer.parseInt(numbers[i]);
                 A.addNumtoNode(a); } } }

public void addNumtoNode(int e){
        head = new Node(e,head);
        if (size == 0)
        tail = head; 
        size++;
        }

Test.txt

样本
9
4

31,415,926,535
2

0
1,234,567,890

1,734,792
131

1,506,033,005,018,000,029
1,992

我认为该节目应该使用“,”来分隔该行。 readLine() 将文本拆分为多行,然后您希望该行的数字由“,”分隔。

String#split() 以正则表达式作为分隔符。

使用正则表达式\D+表示一个或多个非数字。

所以只需更改 String numbers[]= oneLine.split("\n") 至:

 if (oneLine.isEmpty()) {
      continue;
 }
 String numbers[]= oneLine.split("\D+");