java从一行字符串中提取数字

题目给出一个文本文档例如number.txt里面包含几行数字例如1234(数字之间有空格的)34711123然后要求得到如下输出(就是每一行的和)10265我试过这么做,... 题目给出一个文本文档例如number.txt里面包含几行数字
例如
1 2 3 4(数字之间有空格的)
3 4 7 1 11
2 3
然后要求得到如下输出(就是每一行的和)
10
26
5
我试过这么做,但是由于一行里面的数字不是独立数字 Integer.parseInt(line)转不出每一个数字,因此求不了总和。有什么办法解决呢?是不是要用数组来保存每一行的数字?
import java.io.*;
import java.util.*;

public class EchoSum extends Echo
{

public EchoSum (String datafile) throws IOException
{
super(datafile);
}
public void processLine(String line){
int sum = 0;
int num = Integer.parseInt(line);
sum+=sum;
}
}
展开
 我来答
百度网友bae7667
推荐于2016-09-03 · TA获得超过936个赞
知道小有建树答主
回答量:404
采纳率:100%
帮助的人:140万
展开全部
Integer.parseInt(line)如果不是数字会抛出NumberFormatException,学会捕获异常处理吧。。。
int a = 0;//必须定义在外部
try{
a = Integer.parseInt(line);
}catch(NumberFormatException e){
a = 0;//不能转换时当0处理,这样累加就可以了;除非你还要做平均,那么这里还要踢出分母的次数
}

另:public EchoSum (String datafile) throws IOException
这种异常写在类里,尽量不要抛在方法上,去掉throws IOException
改写在方法里
追问
谢谢你详细的解答,非常有帮助。我们正要学习这个try catch的使用方法,但我对这个写法还非常不熟悉,从这个解释里面我再研究一下。也很感谢cminirice,但hanyuekidd更点出问题所在~所以满意答案给hanyuekidd吧~谢谢你们
千锋教育
2015-12-26 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
可以通过循环判断是否是数字,如果是数字就提取出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1d1f0fb
2012-04-11
知道答主
回答量:29
采纳率:0%
帮助的人:22.7万
展开全部
String line = "1 2 3 4";
String[] array = line.split("\\s+");
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += Integer.parseInt(array[i]);
}
System.out.println(sum);
追问
谢谢~可惜不能选多个满意答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bb8f36b
2012-04-11 · TA获得超过1402个赞
知道小有建树答主
回答量:970
采纳率:0%
帮助的人:638万
展开全部
LZ,可以把整个文本文档读入,然后判断每一个字符,转换成char类型,判断其asc码的范围。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-04-11 · TA获得超过158个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:123万
展开全部
支持二楼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式