字符串在字符串数组中出现的次数?

naihe1234 2011-07-24 02:51:25

参数args[] 有6个元素 hello world hello welcome world welcome
java初学者,然后看视频里问题,求出每个元素在其中出现的次数, 这是一开始自己写的方法,
很累赘而且改动好几次,而且没法完成算法,但是想了蛮久感觉逻辑没错,所以来求助,如果能指出问题所在的万分感谢呐!

public static void main(String[] args)
{
HashMap map = new HashMap();
map.put(args[0], new Integer(1));

int d = 0;
boolean b = true;

for(int i = 1; i < args.length ; i++)
{
for(int k = i-1; k >= 0; k--)
{
if(args[i].equals(args[k])) //args[i]更已经出现过的args[i]之前的数组比较
{
b = false ; //如果出现过了 给b赋值 false,
}
}

System.out.println(b); //原本应该输出的是 true false true false false
//现在输出的是 true false false false false

// if(b)
// {
// map.put(args[i], new Integer(1));
// }
// else
// {
// Integer in = (Integer)map.get(args[i]);
// in = new Integer(in.intValue() + 1);
//
// map.put(args[d], in);
// }

}

Set set = map.keySet();
for(Iterator iter = set.iterator(); iter.hasNext();)
{
String key = (String)iter.next();
Integer value = (Integer)map.get(key);

System.out.println(key + ":" + value);

}
}
...全文
183 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
naihe1234 2011-07-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 alexandertech 的回复:]
Java code

for (int i = 1; i < args.length; i++) {
b=true; //这里必须重置b,否则上一轮循环中对b的设置永远不会改变,即一旦为false,永远为false
for (int k = i - 1; k >= 0; k--) {
//......

……
[/Quote]


谢谢 开始定义boolean b的时候想的是放在方法里哪都用的到 后面老是纠结算法完全没注意到这个
非常谢谢 不然纠结死了要 新手果然要学的有很有
飞跃颠峰 2011-07-24
  • 打赏
  • 举报
回复

for (int i = 1; i < args.length; i++) {
b=true; //这里必须重置b,否则上一轮循环中对b的设置永远不会改变,即一旦为false,永远为false
for (int k = i - 1; k >= 0; k--) {
//......

62,614

社区成员

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

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