【问题标题】:How to get particular string form a string如何从字符串中获取特定字符串
【发布时间】:2017-07-28 18:55:17
【问题描述】:
String text = "Thanx for purchasing this, Rs. 1000. Thanx for visiting";

我需要上述字符串中的双精度值。 长度不是固定的卢比。值 (1000)。

如何得到这个值?

【问题讨论】:

标签: java


【解决方案1】:

您可以将所有单词组成一个数组,并且只使用这样的数字:

var text = "Thanx for purchasing this, Rs. 1000. Thanx for visiting";

var array = text.split(" ");
var newText = array[5].replace(".","");

console.log(newText)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 文本可以任意数字空格,所以我们可以使用空格分割并取数组[5]元素
【解决方案2】:

为此,您需要使用java regex

这里是示例代码 正则表达式模式将根据您的要求更改简单的正则表达式以仅获得双精度值"\\d+\\.\\d+"

String line = "Thanx for purchasing this, Rs. 1000. Thanx for visiting";
        String regex = "[+-]?\d*\.?\d+([eE][+-]?\d+)?";

        String[] str = line.split(regex);

否则你可以试试下面的代码

public String drawDigitsFromString(String strValue){
            String str = strValue.trim();
            String digits="";
            for (int i = 0; i < str.length(); i++) {
                char chrs = str.charAt(i);              
                if (Character.isDigit(chrs))
                    digits = digits+chrs;
            }
            return digits;
        }

我想这会对你有所帮助。

【讨论】:

    【解决方案3】:

    如果没有其他数字,那么在卢比之后。你可以使用

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

    如果还有其他号码,它就会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      相关资源
      最近更新 更多