您的位置:首页 > 其它

ArrayList和HashMap的结合使用

2018-01-13 23:26 253 查看
2.分析以下需求,并用代码实现:

 (1)利用键盘录入,输入一个字符串

 (2)统计该字符串中各个字符的数量

 (3)如:

  用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"

  程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)

 基本解决思路:

    1,用ArrayList接收输入的字符

    2,对输入的字符串转换成字符数组,统计各个字符的总出现数,

    3,将 字符:字符个数    存储到hashMap中

    4,遍历输入hashmap表即可

  

主程序大致框架:

public static void main(String[] args) {
  List<String> array = new ArrayList<String>();
  Map<Character,Integer> map = new HashMap<Character,Integer>();
  
  function_1(array);//键盘接收字符串
  function_2(array,map);//将字符串转换成字符数组,并将统计的字符和字符个数存储到HashMap中
  function_3(map); //遍历HashMap,输出最后结果
  
 }

funciton_1()的主要代码如下:

//接收字符串函数,输入字符串,直到输入 end 为止
public static void function_1(List<String> array) {
Scanner sc = new Scanner(System.in);
while(true) {
String str = sc.next();
if("end".equals(str)) {
sc.close();
break;
}
array.add(str);

}

}

function_2()的主要代码如下:
public static void function_2(List<String> array,Map<Character,Integer> map) {

//创建字符数组接收字符串转换过来的字符数组
char[] ch = array.toString().toCharArray();
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i]);
}
System.out.println("\n===================================");

int[] number = new int[ch.length];

//双重for循环统计字符个数
//由于String.toCharArray()是把"[","]",给算上的,所以将最开始和最后的括号去掉
for (int i = 1; i < ch.length-1; i++) {
int count = 1; //字符最开始有一个
for (int j = 1; j < ch.length-1; j++) {
if(ch[i] == ch[j])
number[i] = count++;
}
}

//将统计的字符个数还有数字添加到HashMap中
//由于String.toCharArray()是把"[","]",给算上的,所以将最开始和最后的括号去掉
for (int i = 1; i < number.length-1; i++) {
map.put(ch[i], number[i]);
}
}

function_3()的主要代码如下:

public static void function_3(Map<Character,Integer> map) {
//遍历map集合,输出相应的键值对
for(Map.Entry<Character,Integer> ent
4000
ry : map.entrySet()) {
char c = entry.getKey();
Integer in = entry.getValue();
System.out.print(c+"("+in+")"+" ");
}

}


我的程序的运行结果如下:



 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐