试图删除所有不是0-9和句号的字母和字符。我使用的是character。isdigit()但它也删除了小数,我怎么能保留小数呢?
当前回答
试试下面的代码:
String str = "a12.334tyz.78x";
str = str.replaceAll("[^\\d.]", "");
现在str将包含“12.334.78”。
其他回答
番石榴:
String input = "abx123.5";
String result = CharMatcher.inRange('0', '9').or(CharMatcher.is('.')).retainFrom(input);
参见http://code.google.com/p/guava-libraries/wiki/StringsExplained
解决方案
与冲
String phoneNumberstr = "Tel: 00971-557890-999";
String numberRefined = phoneNumberstr.replaceAll("[^\\d-]", "");
结果:0097-557890-999。
没有冲
如果你也不需要字符串中的"-",你可以这样做:
String phoneNumberstr = "Tel: 00971-55 7890 999";
String numberRefined = phoneNumberstr.replaceAll("[^0-9]", "");
结果:0097557890999。
货币十进制分隔符可以因区域设置而不同。考虑这个问题可能会很危险。作为分隔符。 即。
╔════════════════╦═══════════════════╗
║ Locale ║ Sample ║
╠════════════════╬═══════════════════╣
║ USA ║ $1,222,333.44 USD ║
║ United Kingdom ║ £1.222.333,44 GBP ║
║ European ║ €1.333.333,44 EUR ║
╚════════════════╩═══════════════════╝
我认为正确的方式是:
通过默认的Locale或DecimalFormatSymbols获取十进制字符 指定一个。 使用十进制字符处理正则表达式模式,以便只获取数字
下面是我的解决方法:
代码:
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public static String getDigit(String quote, Locale locale) {
char decimalSeparator;
if (locale == null) {
decimalSeparator = new DecimalFormatSymbols().getDecimalSeparator();
} else {
decimalSeparator = new DecimalFormatSymbols(locale).getDecimalSeparator();
}
String regex = "[^0-9" + decimalSeparator + "]";
String valueOnlyDigit = quote.replaceAll(regex, "");
try {
return valueOnlyDigit;
} catch (ArithmeticException | NumberFormatException e) {
Log.e(TAG, "Error in getMoneyAsDecimal", e);
return null;
}
return null;
}
我希望这能有所帮助。”
下面的代码应该删除所有非数字字符,并允许句号。
String newString = currentString.replaceAll("[\\D.]", "");
我会用正则表达式。
String text = "-jaskdh2367sd.27askjdfh23";
String digits = text.replaceAll("[^0-9.]", "");
System.out.println(digits);
打印
2367.2723
你也可以用-来表示负数。
推荐文章
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- bash:错误的替换
- 在c#中检查字符串是否只包含数字的最快方法
- 对于一个布尔字段,它的getter/setter的命名约定是什么?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- 如何计算一个元素在列表中出现的次数
- c++中类似于java的instanceof
- 我怎么能强迫一个长字符串没有任何空白被包装?
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?
- 如何POST表单数据与Spring RestTemplate?
- Mockito中检测到未完成的存根
- 转换JSON字符串到JSON对象c#
- 我应该如何复制字符串在Java?
- “while(true)”循环有那么糟糕吗?