在java中怎样从字符串中取数字,在字符串中不是有规律的
发布网友
发布时间:2022-07-10 00:29
我来回答
共5个回答
热心网友
时间:2023-10-12 09:32
我的应该更可以。
使用到了正则表达式 比如:
String str = "fds78fds33lkhjk33hjk55656k";
String ing = null;
Object in = null;
public void tq(){
for(int i = 0;i < str.length();i++){
in = str.charAt(i);
if(in.toString().matches("[0-9]{1,}") == true){
if(ing != null){
ing = in.toString().concat(ing);
}else{
ing = in.toString();
}
}
}
System.out.println(ing);
}
热心网友
时间:2023-10-12 09:32
楼主可参考一下,这种方法比较苯的,正则可以了.
public class Test {
public static void main(String[] args) {
String temp="34kl;54jjji3ih6";
StringBuffer digitStr = new StringBuffer();
int flag = -1;
for(int i = 0;i < temp.length();i++)
{
char character = temp.charAt(i);
if(Character.isDigit(character))
{
if(flag != (i - 1))
{
digitStr.append(" ");
}
digitStr.append(character);
flag = i;
}
}
String[] digitArr = digitStr.toString().split(" ");
for(int i = 0;i < digitArr.length;i++)
{
System.out.println(digitArr[i]);
}
}
}
热心网友
时间:2023-10-12 09:33
给你个思路,把字符串变成char数组,然后比较ASCII
热心网友
时间:2023-10-12 09:33
使用正则。
Pattern p = Pattern.compile("\\D+");
String[] res = p.split("34kl;54jjjj4ii6");
for(String s : res){
System.out.println(s);
}
热心网友
时间:2023-10-12 09:34
用正则表达式试试