日期:2014-05-20  浏览次数:20849 次

求一个简单的方法
我是做工程的,没学过Java,现在用的一个软件是用Java语言写的,碰到一个小小的二次开发的问题:提取一个字符串(都是T8*250*10*100这种形式的)中的数值型字符,将其转换为数字,再求它们的和(最后的结果是368)。请问这个问题如何用一个输入参数是字符串"T8*250*10*100",并返回计算结果的方法来实现。请热心的朋友给一个完整的代码。非常感谢!

------解决方案--------------------
你没有认真看我给你回的帖子,正则表达是[\\D]+ 你把大写改成了小写,所以出错

同时你现在这种写法有几个潜在的问题

字符串的模式必须是固定的"L140*90*10" 如果换成 120W*90*45就有问题
还有area可能计算为0,

不是很清楚你的字符串模式,下面这个肯定可以了

Java code
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;
    }