java中怎么把一个字符串中数字和字符分别提取出,例如字符串12+3,要提取成12,3,+,并且打印出来。
3个回答
展开全部
先把字符串分割成字符数组,三种方式判断是不是数字
参考http://www.blogjava.net/Javaphua/archive/2007/06/05/122131.html
1.java自带函数
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
这里将非数字提取
}else{
这里将数字提取
}
}
2用正则表达式,不过这个是判断整个字符串的。你把字符串分割了再循环调用
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3用ascii码,这个最简单了,小雨0或者大于9的asscii码就肯定不是数字
public static boolean isNumeric(String str){
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}
参考http://www.blogjava.net/Javaphua/archive/2007/06/05/122131.html
1.java自带函数
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
这里将非数字提取
}else{
这里将数字提取
}
}
2用正则表达式,不过这个是判断整个字符串的。你把字符串分割了再循环调用
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3用ascii码,这个最简单了,小雨0或者大于9的asscii码就肯定不是数字
public static boolean isNumeric(String str){
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}
展开全部
public class Test {
public static void main(String[] args) {
Pattern p=Pattern.compile(\\d+);
Matcher matcher=p.matcher("12+3");
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}
public static void main(String[] args) {
Pattern p=Pattern.compile(\\d+);
Matcher matcher=p.matcher("12+3");
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据它们的ascii码区分,用正则表达式会简单点:
String input="12+3";
String regExp="\\D";//非数字的正则表达式
String [] nums=input.split(regExp);//取得数字
System.out.println(Arrays.asList(nums));
//取得非数字
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(m.group());
}
String input="12+3";
String regExp="\\D";//非数字的正则表达式
String [] nums=input.split(regExp);//取得数字
System.out.println(Arrays.asList(nums));
//取得非数字
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(m.group());
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询