我是做工程的,没学过Java,现在用的一个软件是用Java语言写的,碰到一个小小的二次开发的问题:提取一个字符串(都是T8*250*10*100这种形式的)中的数值型字符,将其转换为数字,再求它们的和(最后的结果是368)。请问这个问题如何用一个输入参数是字符串"T8*250*10*100",并返回计算结果的方法来实现。请热心的朋友给一个完整的代码。非常感谢!
解决方案 »
- HttpClient 怎么提交Form表单
- 一个程序界面的显示问题
- 关于按钮的一个简单问题..
- 请问关闭窗体的命令是什么
- 初学Java和Junit, 为啥总说找不到要测试的类呢?(详情见内,谢谢)
- 谈谈心啊!!!有打算考研但又想进一步学习编程的朋友进来聊聊!!!!
- 向大家请教一个关于谓词公式的自动证明问题
- 各位大哥,这个无知的问题麻烦各位了,请帮帮忙,谢谢!
- 高分求救:一个关于java.awt.Dialog的问题
- JBuilder6.0中How to 打包成war文件!请详细点说,我是新手!
- 请教JtextField批量赋值给一个对象的问题
- 学JAVA一段时间,一直搞不懂set和get方法的问题
如果你这里面只有整数,没有小数的话String s="T8*250*10*100";
String[] ints=s.split("[\\D]+"); int sum=0;
for(String ss:ints){
System.out.println("parse:"+ss);
if(ss.matches("[\\d]+")){
System.out.println("--");
sum+=Integer.parseInt(ss);
}
// sum+=Integer.parseInt(ss);
}
System.out.println(sum);
{
int H,W,t;
float area,static_moment;
String[] size = section.split("[\\d]+");
H = Integer.parseInt(size[1]);
W = Integer.parseInt(size[2]);
t = Integer.parseInt(size[3]);
area = (H-t)*t + W*t;
static_moment = (H-t)*t*(H-t)/2.0 + W*t*(H-t/2.0);
return static_moment/area;
}但是当我用out=offset("L140*90*10")调用的时候提示说Interpreted Exception,请大家帮我看看问题出在哪里。拜谢!
还有area可能计算为0,不是很清楚你的字符串模式,下面这个肯定可以了float offset(String section)
{
int H,W,t;
float area,static_moment; String[] size = section.split("[\\D]+");
for(int i=1;i<=3;i++){
System.out.println(size[i]);
}
H = Integer.parseInt(size[1]);
W = Integer.parseInt(size[2]);
t = Integer.parseInt(size[3]);
area = (H-t)*t + W*t;
static_moment = (float) ((H-t)*t*(H-t)/2.0 + W*t*(H-t/2.0));
if(area==0){
return -1;
}
return static_moment/area;
}
输入字符串都是"L125*80*8"或者"T8*250*10*100"的形式,不会出现"120W*90*45"这种形式。
我自己写的代码的问题应该出现在正则表达式和除法上,根据ioe_gaoyong的代码修改后便没有报错。