JAVA 怎么在命令行中输入字符串数组,统计它们的个数后输出,要代码

JAVA 怎么在命令行中输入字符串数组,统计它们的个数后输出,要代码?
例如输入字符串数组{abc,noke,name,note,abc,home,life}
结果是 abc 个数 2;
noke 个数 2;

......

//构建控制台的输入流
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input:\n");
//用于存储键值对的map
Map <String, Integer> countMap = new HashMap<String, Integer>();
String strtemp = "";
String []strarray;
//从控制台读取一行
String str = reader.readLine();
reader.close();
int count = 1;
int cur;
//如果没有输入
if(str == null || "".equals(str))
System.out.println("there are some erros!");
else{
//在字符串中找到第一个{
cur = str.indexOf('{');
if(cur < 0){
System.out.println("do not contain '{'");
}else{
//在字符串中找到最后一个}
strtemp = str.substring(cur + 1);
cur = strtemp.lastIndexOf('}');
if(cur >= 0){
strtemp = strtemp.substring(0, cur);
strarray = strtemp.split("\\,");
for(String ts : strarray){//将找到的字符串放入map中
if(countMap.containsKey(ts))
count += countMap.get(ts);
countMap.put(ts, count);
count = 1;
}
//打印字符串键对值
for(String ts : strarray){
if(countMap.containsKey(ts)){
System.out.println(ts + ": " + countMap.get(ts));
countMap.remove(ts);
}
}
}else{
System.out.println("do not contain '}' or no values in {}");
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-30
//package com.color.program;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class CountStr {

public static void main(String[] args){
Scanner s = new Scanner(System.in);
StringBuffer b = new StringBuffer();
System.out.println("请输入字符串,以,间隔。如果要结束输入exit!");
String str = s.nextLine();
while(str != null && !str.equals("exit")){
b.append(str);
str = s.nextLine();
}
str = b.toString();
String t[] = str.split(",");
Map<String,Integer> c = new TreeMap<String,Integer>();
for(int i=0;i<t.length;i++){
if(c.get(t[i]) != null){
c.put(t[i],c.get(t[i])+1);
}else{
c.put(t[i],1);
}
}
Object[] keys = c.keySet().toArray();
System.out.println("------统计---------");
for(int i=0;i<keys.length;i++){
System.out.print(keys[i]+":"+c.get(keys[i]));
System.out.println();
}
}
}

-----------运行结果-------------
请输入字符串,以,间隔。如果要结束输入exit!
1,4,5,w23,a,sf,sd,ba,da,sdf,c,1,4,5
exit
------统计---------
1:2
4:2
5:2
a:1
ba:1
c:1
da:1
sd:1
sdf:1
sf:1
w23:1
第2个回答  2007-11-30
要在命令行中中通过参数来传送 如要执行名为Hellowold的文件,要在命令行中这么写 java Hellowold sgg iog kjj 此处"sgg iog kjj"即为你传入的参数,args[0] = sgg,args[1] = sgg,args[2] = sgg
相似回答