2道头疼的题目,请赐教. ~

Lie_li 2008-05-15 02:09:19
我是java初学者,最近参加工作,头头丢下2个问题。。。比较头疼。。。。。特来求助。。

1.读取一个文本 内容如下
444 444.f
442 assd22
444 444

要求:计算每行2边数值的合


2.读去HTML文件,统计其中有多少个LINK或是多少个HTTP地址


关于第1题,我写的如下:(由于分主外机,代码都是手打,可能有误)
public static boolean isInteger(String value) {
try {
Integer.parseInt(value);
return true;
} catch (NumberFormatException e) {
return false;
}
}

/**
* 判断字符串是否是浮点数
*/
public static boolean isDouble(String value) {
try {
Double.parseDouble(value);
if (value.contains("."))
return true;
return false;
} catch (NumberFormatException e) {
return false;
}
}

/**
* 判断字符串是否是数字
*/
public static boolean isNumber(String value) {
return isInteger(value) ¦ ¦ isDouble(value);
}


public static void main(Sting[]args)
{
File f=new File("e:\\11.txt");
FileReader fr=new FileReader(f);
BuffereReader bf=new BuffereReader (fr);


Double dsum=0d;
int isum=0;
String readLine="";
String [] myArray=new String[(int)f.length];

while((readLine=bf.readLine())!=null)
{
myArray=readLine.split("\\s+");
for(int i=0;i <myArray.lenth;++i)
{
if(isNumber(myArray[i].toString)==true ¦ ¦ isDouble(myArray[i].toString)==true)
{
dsum += Double.parseDouble(myArray[i]);
}
}

}


遇到的问题有下面几个:
1.按这样的代码,计算出来的记过是该文本中所有数值型的总合;
2.本想判断2边数值如果都是INT则用isum变量统计,有一边是Double则用dsum来统计,但是用isum统计的时候数据有问题,所以在这里没有打出来.
3.有没有更简洁的方法达到该题的目的.


书上说遇到难题自己先尝试查找资料去解决,1天下来没解决的再去找别人帮忙.

已经折腾2天了.....


看了那么多,麻烦了~
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lie_li 2008-05-16
  • 打赏
  • 举报
回复
回专家。


1.在for 循环开始,给 dsum =0
这样一来每次都清0,结果只是把每个数字都打印一遍

2.如果不确定是Integer还是 Double, 那就用 double
是我没说清楚,如果文本里每行左右任何一边是4f,那么输出也需要带有f。
我自己写死的代码中可以解决这个问题,但在活代码中,这点比较头疼。

3.左右任何一边不是数字就不操作或输出点别的什么,但我这样的代码,则会把数值的一边和经过判断不是数值输出的东西一起输出。

5.str.split("LINK");
截取的话,那不是就等于把他删了,那还怎么获得呢?
还有这题目我自己也比较迷糊的地方是<link/> 还是class="blackLink"
还有还是指hr="http://~~~~~~~~~~"这样的连接
我在别初发的贴中,有人说到用正则表达式


希望能有代码表示,麻烦了。
刘彬彬 2008-05-15
  • 打赏
  • 举报
回复
向一楼学习了!
老紫竹 2008-05-15
  • 打赏
  • 举报
回复
1 在for 循环开始,给 dsum =0, 在循环结束处打印,就是一行的数据之和了

2 你的 inNumber 包含了 isDouble ,所以没必要判断2次

3 如果不确定是Integer还是 Double, 那就用 double

4 你的算法没问题,只能这样做了


5 2.读去HTML文件,统计其中有多少个LINK或是多少个HTTP地址

有个简单的方法,那就是 str.split("LINK"); 然后数量就是 数组长度-1

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧