如何将char类型与Object类型进行比较

*** 在做题的时候发现, 通过.toArray() 方法生成的数组为Object类型, 即便需要比较的对象同样是char类型生成的set集合, 但仍无法将新数组与老char数组直接比较.

** Object 类型不好直接转成char, 因此思路是将Object 和 char 都转换为String类型,再通过equals方法进行比较

* 在后面将提供一个案例, 统计字符串"abcdaabbddefc"中各个字母共出现过几次.


假设Object类型的元素为 a,

       String temp1 =  a.toString();          // 就可以转换为String 类型.

假设char类型元素为c,

      String temp2  =  String.valueOf(c);        //可以实现将c转换为String类型

通过equals()方法实现比较

        boolean f  = temp1.equals(temp2);


public class Demo04 {

	public static void main(String[] args) {
        //统计字符串中各个字母共出现过几次
		String str = "abcdaabbddefc";
		
		char[] arr = str.toCharArray();
		//使用set集合可以去重复
		//使用数组遍历, 将char元素添加到set集合
		HashSet<Character> set = new HashSet<Character>();
		for (char c : arr) {
			set.add(c);
		}
		//得到了一个set集合,集合长度set.size();
		Object[] brr = set.toArray();
		
		//如何统计出现的次数, 首先需要知道有哪几个字母(brr[i]),然后遍历arr数组,判断是否相等,并计数
		//brr是Object类, arr是char类, 需要进行转换
		//将Object转成String  brr[i].toString();
		//将arr转换成String  String.valueOf(arr[i]);
		//新的问题是计数,仍需要一个循环对计数,使得count的数量与set.size()相等
        //将计数count放在第一次循环内
		HashMap<Object,Integer>map=new HashMap<Object,Integer>();
		
		for (int i = 0; i < brr.length; i++) {
			int count =0;
			for (int j = 0; j < arr.length; j++) {
				String temp = String.valueOf(arr[j]);
				if (temp.equals(brr[i].toString())) {
					count++;
				}
			}
			map.put(brr[i], count);
			
		}
		System.out.println(map);
	}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在你提供的引用中,有一个方法可以实现将String类型转换为Map<String, Object>类型的功能。你可以使用getValue方法来实现这个转换,这个方法接受一个String类型的参数,并返回一个Map<String, Object>类型的结果。具体代码如下: ```java public static Map<String, Object> getValue(String param) { Map<String, Object> map = new HashMap<>(); String str = ""; String key = ""; Object value = ""; char[] charList = param.toCharArray(); boolean valueBegin = false; for (int i = 0; i < charList.length; i++) { char c = charList[i]; if (c == '{') { if (valueBegin == true) { value = getValue(param.substring(i, param.length())); i = param.indexOf('}', i) + 1; map.put(key, value); } } else if (c == '=') { valueBegin = true; key = str; str = ""; } else if (c == ',') { valueBegin = false; value = str; str = ""; map.put(key, value); } else if (c == '}') { if (str != "") { value = str; } map.put(key, value); return map; } else if (c != ' ') { str += c; } } return map; } ``` 使用这个方法,你可以将一个String类型的map转换成一个Map<String, Object>类型的对象。只需要调用getValue方法,并给它传递一个String类型的参数,它会返回一个Map<String, Object>类型的结果。你可以像这样使用它: ```java String string = "{aaa=11, bbb=22, ccc=33, ddd=44}"; Map<String, Object> stringToMap = getValue(string); for(Object key : stringToMap.keySet()) { System.out.println(key + ": " + stringToMap.get(key)); } ``` 这样,你就可以将一个String类型的map转换为一个Map<String, Object>类型的对象,并且可以对其进行操作和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [将String类型转换成Map数据类型](https://blog.csdn.net/m0_54850825/article/details/123710782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java 读取csv 并转为Map<String,Object>](https://download.csdn.net/download/qq_37181642/87824694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值