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

yifuzhiming 2007-10-11 11:28:39
有这样的一个字符串,我需要分成多个字符串,每个字符串的数值不能超过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;

谢谢大家帮忙,请提供实现思路,有代码当然好了
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maojm 2007-10-14
  • 打赏
  • 举报
回复
你用的是什么jdk版本? 我是在jdk1.6下运行的
cwjieNo5 2007-10-12
  • 打赏
  • 举报
回复
怎么我用Eclipse编译不出来呢`~
Maojm 2007-10-12
  • 打赏
  • 举报
回复
我写了个,不知道是否满足楼主的要求。我也是初学者,写得不好,多多指教。
注意: 在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;
}
}
Computeryp 2007-10-11
  • 打赏
  • 举报
回复
先确定下题意。
原始字符串最多含有五个数字么?
会不会出现所有数字之和为质数?(这样就无法分解了)
最多分成四段、只能分成四段、还是随意分?

Davis129 2007-10-11
  • 打赏
  • 举报
回复
两个循环不就行了
一个横向嵌一个纵向
把字串取出转整数操作,按字符串剩余值更改原字串

也可取在数组里操作

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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