如何删除""从一个字符串,以便我可以将带有数字的字符串转换为整数?

时间:2018-02-08 15:05:20

标签: java

我正在尝试删除所有字母并打印数字,然后在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");

        }
    }
}

1 个答案:

答案 0 :(得分:0)

regular expression匹配所有非数字:\D。因此,如果您确实要丢弃所有其他字符并且只留下十进制数字,请使用

String digitsOnly = myString.replaceAll("\\D", "");

请注意,如果可能,这可能会吞下小数点和多个数字之间的任何分隔符。