替换为空的空间

时间:2014-02-27 12:32:08

标签: java

我以前做过这个,但现在遇到了不同的问题。我想只提取 “Homework 1:89” 中的数字,它位于 .txt文件中。如上所述我通常使用 “。replaceAll(”[\ D]“,”“)”* 。但是如果我这样做的话,结肠前的数字(例子中的1)仍然存在......我看不出任何解决方案。

它应该是这样的:

       while (dataSc.hasNextLine()) {
              String data = dataSc.nextLine();
              ArrayData.add(i, data);

         if (data.contains("Homework ")) {
            idData.add(a, data);
            idData.set(a, (idData.get(a).replaceAll("[\\D]", "")));

输出为,一个新的字符串,只有“89”......

2 个答案:

答案 0 :(得分:2)

感谢您编辑问题。

如果你只是想在家庭作业这个词的时候试图结束,你可以依靠一致的格式,你可以做到以下几点:

String[] tokens = data.split(": ");
System.out.println(tokens[1]);

因此,如果您查看代码,您可能希望将其放在if语句中,在该语句中,您只想获取冒号后的数字。

代码的作用是将字符串分解为多个组件,只要看到“:”就会破坏它。

在你的“家庭作业1:89”的例子中,它会将你的数据分成两个“代币”:

1:“家庭作业1”

2: “89”

因此,当访问tokens数组时,我们访问变量tokens[1],因为索引从0开始。

答案 1 :(得分:0)

使用以下代码

1) String str="Homework 1: 89";
        str = str.replaceAll("\\D+","");
        2) String str="sdfvsdf68fsdfsf8999fsdf09";
           String numberOnly= str.replaceAll("[^0-9]", "");
        System.out.println(numberOnly);