今天连续写了两个相同功能的程序,自己更喜欢第二种,因为更符合我的逻辑,但是同学说第一种更好,不知道大家怎么看?
第一种
import java.util.ArrayList;
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中的元素输出。
*/
public class Text {
public static void main(String[] args) {
String str = "1.2,3.4,5.6,7.8,5.56,44.55";
Map<Object,Object> map = new HashMap<Object,Object>();
String[] s1 = str.split(",");
for (int i = 0; i < s1.length; i++) {
String[] s2 = s1[i].split("\\.");
map.put(s2[0], s2[1]);
}
Set<Object> set = map.keySet();
System.out.println(set);
Collection<Object> col = new ArrayList<>();
for(Object obj: set){
col.add(map.get(obj));
}
System.out.println(col);
}
第二种
public class split {
public static void main(String[] args) {
String str ="1.2,3.4,5.6,7.8,5.56,44.55";
Set<Object> set = new HashSet<>();
Collection<Object> col = new ArrayList<>();
String[] s = str.split(",");
for (int i = 0; i < s.length-1; i++) {
String[] s1 = s[i].split("\\.");
for (int j = 0; j < 2; j++) {
if(j%2==0){
set.add(s1[j]);
}else{
col.add(s1[j]);
}
}
}
System.out.println(set);
System.out.println(col);
}
|
|