Java 中怎么检测字符串中的数字,并提取出来

如字符串:ABCD5F7HIJ1怎么用函数把它提取出来得到5+7+1=13对不起,题目没说清,应该是用string对象做的正则表达式我还不会谢谢大家!这是我做的funct... 如字符串:ABCD5F7HIJ1 怎么用函数把它提取出来得到 5+7+1=13
对不起,题目没说清,应该是用string对象做的 正则表达式我还不会 谢谢大家!
这是我做的
function zh()
{
var zifu=for1.a.value;
var j=0;
for(var i=0;i<zifu.length;i++)
{
if(zifu.charAt(i)<10)
j=eval(j)+eval(zifu.charAt(i));
}
for1.b.value=j;
}
展开
 我来答
百度网友0c3258b02
2008-06-06 · TA获得超过672个赞
知道小有建树答主
回答量:550
采纳率:0%
帮助的人:628万
展开全部
用正则表达式的几位想法不错,就是有点多了,
根本用不到java.util包吧。
String s = "ABCD5F7HIJ1";
String [] a = s.split("[\\D]+");
用这两句就行了,
数字都存放在数组a中了,
用的时候呢,
注意判断下数组的第一个和最后一个中的值是否是数字
zorolup
推荐于2017-09-27
知道答主
回答量:13
采纳率:0%
帮助的人:16.8万
展开全部
for(int i=0;i<string.length();i++)
{
char x=string.CharAt(i);
if(Character.isDigit(x)==true){
//x类型转换然后统计
}
}
我的话大概会这样做。看你的意思是按字符分吧,就是连着的数字也是分开为几个??就是每次读一个字符,判断是否数字!
顺便也学习一下,有更好的方法麽?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
citytalent
2008-06-05 · TA获得超过1222个赞
知道小有建树答主
回答量:542
采纳率:0%
帮助的人:578万
展开全部
这个用正则表达式做应该,就像楼上说的,几个数字连起来他们的就不可以了,但是我这个可以
import java.util.regex.Pattern;

public class Test74 {
public static void main(String[] args) {
String s = "ABCD5F7HIJ1";
int result = 0;
StringBuffer sb = new StringBuffer();
Pattern p = Pattern.compile("[^0-9]");//使用正则表达式,我设置的规则是除了数字
String[] ss = p.split(s);//利用上面的规则截取原字符串,只剩下数字了,并存放在数组中了
for (int i = 0; i < ss.length; i++) {//遍历数组,删除那些空的(原来是字母或者别的,用正则表达式给转成空了都)
if (!ss[i].equals("")) {
sb.append("+" + ss[i]);//拼最后的加法算式,但是最前面多了个加号,在后面处理
result = result + Integer.parseInt(ss[i]);//result是所有数字的和
}
}
String temp = sb.toString().substring(1);//因为第一位多了一个加号,所以取这个字符串第2位到最后,就把第一个加号处理掉了
System.out.println(temp + "=" + result);//拼下结果输出

}
}

虽然看着比较多,其实很简单,尤其正则表达式就2行,其他的都是在处理拼字符串而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
22557584
2008-06-05
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
String str = ABCD5F7HIJ1;
int sum = 0;
String str2 = "";
for(int i = 0;i<str.length();i++){
int j = (int)str.charAt(i);
if((j > 47 && j < 58){
str2 = str2 + "+" + j;
sum += j;
}
}
str2 = str2.substring(0,str2.length()-2) + "=" + sum;
System.out.println(str2);
具体就这个意思,没验证,直接敲在这上面的,有可能有地方不准确,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
summer6023
2008-06-05 · TA获得超过280个赞
知道答主
回答量:401
采纳率:0%
帮助的人:217万
展开全部
用ByteArrayOutputStream的toByteArray方法返回一个字符数组 然后用for循环取出其中的字符 然后跟a-z和A-Z比较 得到返回false的 再相加打印 虽然方法苯了点 不过还是可以实现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式