我正在尝试删除所有字母并打印数字,然后在java中删除它们的数字
我的数据集:
6
斯坦利在一座大楼里为一家公司工作,作为427号员工
员工427的工作很简单:他坐在427房间,在办公桌前工作
斯坦利很高兴
那咖啡将花费你4.20美元
Linux L1 3.5.0-45-generic#68-Ubuntu SMP Mon Dec 2 21:58:52 x86_64 GNU / Linux
2,014
期望的结果:
427个
427个
427 427
854个
-
0
4 20
24个
3 5 0 45 68 2 21 58 52 86 64
404个
2 14
16个
我的代码
public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new File("txt.txt"));
int size = sc.nextInt();
String x = sc.next();
for(int i =0; i<size; i++){
int sum =0;
String[] word = sc.nextLine().trim().split("\\D+");
List<String> item = Arrays.asList(word);
if(word.length!=0){
for(int j = 0; j<word.length; j++){
if(j==0){
int num = Integer.parseInt(word[j].trim());
out.print(word[j]);
sum+=num;
}
else{
int num = Integer.parseInt(word[j].trim());
out.print(word[j]+" ");
sum+=num;
}
}
out.println(sum);
out.println();
}
else{
out.println("-");
out.println("0");
}
}
}
答案 0 :(得分:0)
有regular expression匹配所有非数字:\D
。因此,如果您确实要丢弃所有其他字符并且只留下十进制数字,请使用
String digitsOnly = myString.replaceAll("\\D", "");
请注意,如果可能,这可能会吞下小数点和多个数字之间的任何分隔符。