黑马程序员---java基础--集合、数组、字符串的综合面试题

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

这道题综合了集合,数组,字符串,字符串缓冲区,自动装箱等知识点,你把这道题做会了,java基础你也就学的差不多了。

问题:

自定义一个段由小写字母组成的字符串统计每个字母出现的次数。

例如:abc,输出结果为:a(1)b(1)c(1)

代码实现及解析

package cn.itcast_test;

import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/*自定义一个段由小写字母组成的字符串统计每个字母出现的次数。
 * 例如:abc,输出结果为:a(1)b(1)c(1)
 *
 * 分析。
 * 1,需要定义一个键盘录入功能
 * 2,需要用一个map集合来接收,为了能够对字母排序这里用TreeMap集合。
 * 		键:Character
 * 		值:Integer
 * 3,把字符串转换为字符数组。
 * 4,遍历字符数组,得到每一个字符
 * 5,拿到4中得到的字符作为键到集合中去找值,看返回值
 * 		null:说明该键不存在,就把该字符作为键,1作为值来存储。
 * 		不是null:说明该键存在,就把值加1,然后重新存储该键和值
 * 6,定义字符串缓冲区变量
 * 7,遍历集合,得到键和值,按照要求进行拼接
 * 8,把字符串缓冲区转换为字符串输出。
*/
public class SumString {
	public static void main(String[] args) {
		//键盘录入
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个由小写字母组成的字符串");
		String s=sc.nextLine();
		//定义一个treemap集合对象
		TreeMap<Character ,Integer> tree=new TreeMap<Character,Integer>();
		//把字符串转换为数组。
		char[] chs=s.toCharArray();
		//遍历数组,并拿到集合中去找值
		for(Character key:chs){
			Integer value=tree.get(key);
			if(value==null){
				tree.put(key, 1);
			}else{
				value++;
				tree.put(key, value);
				}
		}
		//定义字符串缓冲区
		StringBuilder sb=new StringBuilder();

		//遍历集合,并按照要求进行拼接
		Set<Character> set=tree.keySet();
		for(Character key:set){
			int value=tree.get(key);
			sb.append(key).append("(").append(value).append(")");
		}
		//把缓冲区对象转为字符串并输出
		System.out.println(sb.toString());
	}
}

/**
 * 写在后面
 * 这道题综合考了以下知识点
 * 1,集合TreeMap
 * 2,键盘录入
 * 3,字符串和字符串缓冲区对象的转换
 * 4,数组和集合的遍历(优先用增强for循环)
 * 5,字符串缓冲区的拼接功能
 * 6,JDK5以后的Character和Integer自动装箱功能
 * 如果这道题你能很轻松的做出来,说明你对以上知识点已经掌握了,只要多加练习,你便会熟练的运用这些知识点。*/
时间: 2024-10-18 05:44:08

黑马程序员---java基础--集合、数组、字符串的综合面试题的相关文章

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员-Java基础-集合框架-TreeSet、二叉树、泛型

第一讲 TreeSet 1.  概述 TreeSet可以对Set集合中的元素进行排序,按照自然顺序排. 2.  演示代码 输出结果: 总结:TreeSet会对元素进行自然排序,大写排在小写前面. 第二讲  TreeSet存储自定义对象 1. 概述: 将自定义对象存储到TreeSet集合中. 2. 思路: 自定义学生类,并将学生对象存储到TreeSet中,在存储过程中按照年龄排序. 3. 练习:往TreeSet集合中存储自定义对象(学生),并按照学生年龄进行排序 小结: 自定义对象需要重写Comp

黑马程序员——java基础---集合框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.集合框架 概念:集合框架是Java中为了方便对集合进行存储.操作而形成的体系.集合是针对对象最常见的一种存储形式. 数组和集合类同是容器,区别在哪里?     相同点:               集合和数组都是容器,都可一存储对象(对象引用).     不同点:               数组长度固定,集合长度可变.               数组可以存储基本数据类型,集合却只能存储

黑马程序员——Java基础---集合(一)---Collection、set、list

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        集合框架 java中有许多的集合,也称为容器,下图便是集合框架的构成及分类. 一.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.

黑马程序员------java基础----集合

  ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------  集合框架 为什么会出现这么多容器? 因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构. 一.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存

黑马程序员——Java基础---集合(二)------Map集合

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- Map集合 一.概述 1.简述: Map<K,V>集合是一个接口,和List集合及Set集合不同的是,它是双列集合,并且可以给对象加上名字,即键(Key) 2.特点: 1)该集合存储键值对,一对一对往里存 2)要保证键的唯一性

黑马程序员-java基础-集合Map

-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素,都是由键和值两个元素组成,键是不能有重复的,值是可以重复的,每一个键唯一指向一个值. Map体系 Map ——|hashtable: 底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低,已被HashMap替代 ——|HashMap: 底层是哈希表数据结构,允许使用 null 值和 nu

黑马程序员---java基础---集合框架工具类:Collections和Arrays

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二