A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涿郡丶二哥 中级黑马   /  2015-5-2 08:51  /  521 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

今天在做字符串切割时候想以“.”进行切割,可是切出来的东西都不是我想要的,后来觉得是不是“.”是不是有特殊含义,想用转义字符“\.”竟然报错了。瞬间郁闷,经多方查找终于找到解决办法“\\.”究其原因是因为正则表达式中.代表所有字符 想用.本身的意思就要\.而在JAVA中想用.本身的意思就要\\.
下面代码奉上:
package intcast_0430;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* 1、有类似这样的字符串:"1.2,3.4,5.6,7.8,5.56,44.55"请按照要求,依次完成以下试题。
*  (1)以逗号作为分隔符,把已知的字符串分成一个String类型的数组,数组中的每一个元素类似于"1.2","3.4"这样的字符串
*  (2)把数组中的每一个元素以"."作为分隔符,把"."左边的元素作为key,右边的元素作为value,封装到Map中,Map中的key和value都是Object类型。
*  (3)把map中的key封装到Set中,并把Set中的元素输出。
*  (4)把map中的value封装到Collection中,把Collection中的元素输出。
* 思路: 1)字符串切割,保存在字符串数组中{"1.2","3.4","5.6","7.8","5.56","44.55"};
*   2)再次切割字符串数组中的元素用另一个接收,遍历这个数组存到map集合中
*   3)获取map中的key转存到set集合
*   4)获取map中的value转存到collection集合中
*/
public class ExamTest1 {
public static void main(String[] args) {
  String string = "1.2,3.4,5.6,7.8,5.56,44.55";
  //定义Map集合泛型为Object类型
  Map<Object, Object> map = new HashMap<Object, Object>();
  //分割字符串字符数组接收
  String[] str = string.split(",");
  //循环遍历过程中切割数组内部字符串存入Map集合需要Map集合
  for(String string1:str){
   //System.out.print(string1+" ");
   String[] str2 = string1.split("\\.");
   //遍历Str2存入集合
   for(int x=0; x<str2.length;x++){
    map.put(str2[0], str2[1]);
   }
  }
  //set集合接收key
  Set<Object> set = map.keySet();
//  for (Object object : set) {
//   System.out.println(object+"**"+map.get(object));
//  }
  System.out.println(set);
  //collection集合接收value
  Collection<Object> collection = map.values();
  System.out.println(collection);
  System.out.println("\"");
}
}

5 个回复

正序浏览
收缴了,都是大神
回复 使用道具 举报
涿郡丶二哥 发表于 2015-5-2 09:05
我们刚学IO,Map刚过~可以交流下~

感谢,我看的教程里,老师讲课用的Map<String,String>用来添加字符串;

请问:Object是Java的根类,Map<Object, Object> 这样写的意思,是接受各种类型吗?
回复 使用道具 举报
赞一下~!
回复 使用道具 举报
大西洋 发表于 2015-5-2 09:00
最近刚开始学Map集合,学习~

我们刚学IO,Map刚过~可以交流下~
回复 使用道具 举报
最近刚开始学Map集合,学习~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马