题目是:  依次输入10个商品名称和数量,格式为:商品名称,商品数量。然后输出。要求:输出是如果商品名称相等则商品数量相加,然后再输出。问题是相同的商品如何相加,用什么来输出。下面是我写的,到输出时不知道怎么写了,帮帮忙啊!!!!
/**
 * 输入商品名称,再输入商品数量,保存在一个字符串中
 * 如:电视,3
 * 空调,1
 * 输入10次,然后打印出来
 **/class StringTest5{
public static void main(String args[]){
//定义一个字符串数组用来存储商品名称和数量
String str[]=new String[11];

String strName[]=new String[11];//存储商品名称
int strNum[]=new int[11]; //存储商品数量

//用for循环输入10个商品名称和数量
for(int i=0;i<10;i++){
str[i]=javax.swing.JOptionPane.showInputDialog("请输入商品名称");

//判断输入是否带有","。
if(str[i].indexOf(",")<0){
javax.swing.JOptionPane.showMessageDialog(null,"输入错误,格式为:商品名称,商品数量");
return;
}
//截取商品数量
String str1=str[i].substring((str[i].indexOf(",")+1),(str[i].length()));
//判断逗号后面是否是数字
for(int j=0;j<str1.length();j++){
if(!(Character.isDigit(str1.charAt(j)))){
javax.swing.JOptionPane.showMessageDialog(null,"输入错误,格式为:商品名称,商品数量1111");
return;
}
}
}

//实现输入的商品名称相同时,商品数量相加
for(int s=0;s<10;s++){

//截取商品名称//截取商品数量并转为整型数

strName[s]=str[s].substring(0,str[s].indexOf(","));
strNum[s]=Integer.parseInt(str[s].substring((str[s].indexOf(",")+1),(str[s].length())));


}

/////// 到下面就不知道怎么写了,帮帮忙改一下,谢谢了!!
for(int j=0;j<10;j++){

for(int k=0;k<9-j;k++){

//判断商品名称是否相等
if(strName[k].equals(strName[k+1])){


strNum[k]+=strNum[k+1];
strNum[k+1]=0;
str[k]=strName[k].concat((","+strNum[k]+""));
str[k+1]="";
}

}

// System.out.println (str[j]);
}




}
}

解决方案 »

  1.   

    看晕了  怎么看怎么像C 我是菜鸟 
    对各种商品计数 让后将他们以 键值对的形式插入HashMap中
    String为名字 ,Integer为数目
    保存名字在商品名数组中
    创建HashMap<String,Integer>  result=new HashMap<String,Integer>();
    然后可以从HashMap中取出
    for(int i=0;i<strName.length;i++){
       System.out.println(result.get(strName[i]).toString();
    }别照抄 只是思路
      

  2.   

    System.out.println(strName[i]+" :"+result.get(strName[i]).toString());
      

  3.   

    明显的key--value,楼上说的对,用hash表
    如果不用,你的也没问题,
    你已经将name和num取道两个数组里面了。就不要再用str[i]这个数组了
    你从
    你不是让str[i]=0了吗?strName[k+1]=""了
    输出的时候,只要加个判断就行了只要strName[i]不等于“”就输出for(int j=0;j<10;j++){
    String xxx=strName[j];
    int k = strNum[j];
    for(int k=j+1;k<10;k++){
    //判断商品名称是否相等
    if(xxx.equals(strName[k])){
    strNum[j]+=strNum[k];
    strName[k]="";
    strNum[k]=0;
    }}
    for(int i=0;i<10;i++)
    {
    if(!"".equals(strName)){
    System.out.println(strName[i] + ":" + strNum[k].toString());
    }
    }
      

  4.   

    if(!"".equals(strName)){
    ====>
    if(!"".equals(strName[i])){