【问题标题】:String to start with number, then dots and commas in Java以数字开头的字符串,然后是 Java 中的点和逗号
【发布时间】:2014-11-17 12:18:56
【问题描述】:

朋友,我有以下问题 - 我在 Java 中有一个字符串,其中包含字符、数字、点、逗号等。这是我需要做的一个示例:

我有以下字符串:

"Value:, £ 13.110,12"

现在,我希望新字符串以数字开头,然后可以包含其他数字、点和逗号。类似的东西:

“13.110,12”

我正在尝试这样做,但没有成功:

valueLabel.replaceAll("[^0-9.,]+", "");

但它给了我这个:

",13.110,12"

我在开头有一个额外的逗号,我想删除它。如何更改正则表达式来做到这一点?

【问题讨论】:

  • 你的字符串格式总是一样的?
  • 是的,总是一样的,只是数量可能不同。
  • 以什么格式接收这个号码?我的意思是什么输入。
  • 如果格式相同,为什么不直接使用substring
  • 试试valueLabel = valueLabel.replaceAll("Value:, £ ", "");

标签: java android regex numbers


【解决方案1】:

使用替换功能,

public static void main(String[] args) {
        String valueLabel = "Value:, £ 13.110,12";
        String res = valueLabel.replaceAll("Value:, £ ", "");
        System.out.println(res);
    }

输出

13.110,12

【讨论】:

    【解决方案2】:

    你可以试试这个:

    "^[^0-9.]+" 
    

    它将仅检查字符串的开头并在找到第一个数字时停止,因此 Value:, £ 将被删除。

    但如果你能拥有这个:

    "Value:1, £ 12.121,5" 
    

    结果将是, £ 12.121,5

    但如果你确定在号码开始之前没有任何号码,那就可以了;)

    【讨论】:

    • +1。锚是关键,但我也会把点去掉:"^[^0-9]+"
    【解决方案3】:

    试试这个:

        String nm="Value:, £ 13.110,12";
        String arr[]=nm.split(" ");
        Log.e("arr",arr[2]);
    

    arr[2] 将是您想要的最终字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多