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+");
基本上,我试图能够读取由某些条件分隔的每一行 (\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+");