有这样的一个字符串,我需要分成多个字符串,每个字符串的数值不能超过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;谢谢大家帮忙,请提供实现思路,有代码当然好了

解决方案 »

  1.   

    我写了个,不知道是否满足楼主的要求。我也是初学者,写得不好,多多指教。
    注意: 在jdk1.6下测试通过。jdk1.5应该也没问题。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;
    }
    }
      

  2.   

    怎么我用Eclipse编译不出来呢`~
      

  3.   

    你用的是什么jdk版本?  我是在jdk1.6下运行的