java单独输出字符串中的整数,然后再输出
用户将输入一个字符串,程序应识别整数。
如果用户输入Hello12 3
,它应该输出:
The integral numbers are:
id1 12
id2 3
但在我的代码中,它输出
The integral numbers are:
int1
int2
int3
int4
int5
int6 12
int7 3
我该怎么修? 我的代码:
import java.util.*;
public class LexicalAnalyzer {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
String str;
int j=0;
System.out.println("Lexical Analyzer for Algebraic Expressions\n");
System.out.print("Enter the String: ");
str = input.nextLine();
System.out.println("String length is: "+str.length());
System.out.println("\nThe integral numbers are: \n");
String intNum = str.replaceAll("[^0-9]", " ");
String[] intSplit = intNum.split(" ");
for(int i=0;i<intSplit.length;i++){
System.out.println("int"+(i+1)+" "+intSplit[i]);
}
}
}
# 1 楼答案
不要在修改字符串上浪费时间(CPU资源),只需搜索所需内容:
# 2 楼答案
您正在用空格替换每个非数字字符。您需要用
""
替换它,这样就没有多余的空间了。然后在空间上进行分割,将得到所需的结果。此外,还需要使用[^0-9\\s]
来保留数字之间的空格,以便空格不会被""
(空字符串)替换替换:
与: