首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

这个有关问题好难啊,请大家帮忙啊

2011-12-26 
这个问题好难啊,请大家帮忙啊有这样的一个字符串,我需要分成多个字符串,每个字符串的数值不能超过50,效果

这个问题好难啊,请大家帮忙啊
有这样的一个字符串,我需要分成多个字符串,每个字符串的数值不能超过50,效果如下
123;27;34;16;0;
分成以下几个,每个字符串的数值加起来不能超过5个
50;0;0;0;0;
50;0;0;0;0;
23;27;0;0;0;
0;0;34;16;0;

谢谢大家帮忙,请提供实现思路,有代码当然好了

[解决办法]
两个循环不就行了
一个横向嵌一个纵向
把字串取出转整数操作,按字符串剩余值更改原字串

也可取在数组里操作
[解决办法]
先确定下题意。
原始字符串最多含有五个数字么?
会不会出现所有数字之和为质数?(这样就无法分解了)
最多分成四段、只能分成四段、还是随意分?


[解决办法]
我写了个,不知道是否满足楼主的要求。我也是初学者,写得不好,多多指教。
注意: 在jdk1.6下测试通过。jdk1.5应该也没问题。

Java code
import java.util.*;public class delstr{    public static void main(String[] args)     {        String temp="";        String[][] sedstr =new String[5][];        int [][] ret =  new int [6][5];         Scanner in = new Scanner(System.in);        int i=0;        while (i<5)        {            temp=in.next();            sedstr[i]=temp.split(";");            i++;        }        if (strToInt(sedstr,ret)){            System.out.println("\n输入数据合法!\n结果:");            for (int k=0;k<5;k++){                if (k<4){                    System.out.print(ret[5][k] + ";");                    }else{                    System.out.print(ret[5][k]);                    }                }        }    }        public static boolean strToInt(String[][] aStr,int [][] aInt){        int total=0;        for (int j=0;j<5;j++){            for (int i=0;i<5;i++){              aInt[i][j]=Integer.parseInt(aStr[i][j]);              if (aInt[i][j]>50){                  System.out.println("第 "+ (i+1) + " 行,第 " + (j+1) + "列的值 大于50!");                  return false;              }              total +=aInt[i][j];            }            aInt[5][j]=total;            total=0;        }        return true;    }}
[解决办法]
怎么我用Eclipse编译不出来呢`~

热点排行
Bad Request.