java中怎么把一个字符串中数字和字符分别提取出,例如字符串12+3,要提取成12,3,+,并且打印出来。

 我来答
专治八阿哥的孟老师
2013-10-15 · 爱生活,爱编程,专心于学习技术和撸猫
专治八阿哥的孟老师
采纳数:494 获赞数:3914

向TA提问 私信TA
展开全部
先把字符串分割成字符数组,三种方式判断是不是数字
参考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;
}
13849176494
2013-10-15 · 超过29用户采纳过TA的回答
知道答主
回答量:163
采纳率:0%
帮助的人:90.7万
展开全部
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());
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
manwu91
2013-10-15 · TA获得超过486个赞
知道小有建树答主
回答量:385
采纳率:71%
帮助的人:289万
展开全部
根据它们的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());
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式