java 去除字符串中所有非数字的
时间: 2023-12-10 14:41:53 浏览: 358
可以使用正则表达式来去除字符串中的非数字字符,例如:
```java
String str = "a1b2c3d4";
str = str.replaceAll("\\D", "");
System.out.println(str); // 输出 1234
```
其中,`\\D` 表示非数字字符的正则表达式,`replaceAll` 方法将其替换为空字符串,从而去除所有非数字字符。
相关问题
java 去除字符串中所有非数字的 保留小数点和负数
可以使用正则表达式来去除字符串中所有非数字的字符,并保留小数点和负数。具体实现可以参考以下示例代码:
```java
public static String removeNonNumeric(String str) {
// 使用正则表达式去除所有非数字的字符,保留小数点和负数
String result = str.replaceAll("[^\\d.-]", "");
return result;
}
```
使用示例:
```java
String str = "abc123.45-678xyz";
String result = removeNonNumeric(str);
System.out.println(result); // 输出:123.45-678
```
该方法将字符串中所有非数字的字符都去除了,并保留了小数点和负数。
用java提取字符串中数字之前的字符串 并去除截取出来的字符串中的所有空格
可以使用正则表达式来匹配字符串中的数字之前的字符串,然后使用 String 类的 trim() 方法去除截取出来的字符串中的所有空格。以下是示例代码:
```java
String str = "abc 123";
String regex = "(.*[^\\d])(?=\\d)"; // 匹配数字之前的字符串
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String result = matcher.group(1).trim(); // 去除空格
System.out.println(result); // 输出 "abc"
}
```
解释一下正则表达式 `(.*[^\\d])(?=\\d)`:
- `.*` 匹配任意字符零次或多次
- `[^\\d]` 匹配非数字字符
- `(?=\\d)` 正向预查,匹配数字字符之前的字符串,但不包括数字字符本身
因此,这个正则表达式可以匹配数字字符之前的任意字符串。
阅读全文