java 两个字符串数组对应拼接问题

 String[] cols = "name,age,gender,phone".split(",", -1);
 String[] message = "abc\tdef\t123\t456".split("\\t", -1);

 // 这两个字符串组数一一对应,然后组成map

 key—value
 name:abc,age:def,gender:123,phone:456

有没有工具类,不用for 去遍历?

米脂
浏览 2061回答 4
4回答

江户川乱折腾

为什么会有这么奇怪的要求,不用 for。遍历肯定是个循环操作,循环就 for 和两种 while,不用 for 那就用 while 呗…… 另外,你可以用 stream 对遍历处理的封装,如果不幸没用上 Java8,那就自己写个封装再调用……

墨色风雨

首先声明这个答案一下纯属娱乐,从实用角度来说毫无益处。但是确实完全满足了生成map的时候没有for循环。至于使用map的时候嘛…… public class MapTest { @Test public void testMakeMap() throws Exception { String[] cols = "name,age,gender,phone".split(",", -1); String[] message = "abc\tdef\t123\t456".split("\\t", -1); Map<String, String> map = toMap(cols, message); assertThat(map.get("name"), is("abc")); assertThat(map.get("phone"), is("456")); assertThat(map.get("age"), is("def")); assertThat(map.get("gender"), is("123")); } private Map<String,String> toMap(String[] keys, String[] values) { return new AbstractMap<String, String>(){ public Set<Entry<String, String>> entrySet() { return new AbstractSet<Entry<String, String>>() { public int size() { return keys.length; } public Iterator<Entry<String, String>> iterator() { return new Iterator<Entry<String, String>>(){ int i = 0; public boolean hasNext() { return i < keys.length; } public Entry<String, String> next() { int current = i++; return new Entry<String, String>() { public String getKey() { return keys[current]; } public String getValue() { return values[current]; } public String setValue(String s) { throw new UnsupportedOperationException(); } }; } }; } }; } }; } }

qq_遁去的一_1

没有现成的工具类,你可以写一个工具类,里面用 for 循环,这样你调用的时候就不用写 for 循环了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java