String str="中国 美国 日本 新加坡 10 12 20 13韩国10.0老挝134.0 加拉大1.0"
怎么把它对应起来 用map存 效果如:
key=中国 value=10
key=美国 value=12
key=日本 value=20
key=新加坡 value=13
key=韩国 value=10.0
key=老挝 value=134.0
key=加拉大 value=1.0
当字符串变的时候但方法不用改(数据一定是对应的)
先谢谢各位大虾了!
怎么把它对应起来 用map存 效果如:
key=中国 value=10
key=美国 value=12
key=日本 value=20
key=新加坡 value=13
key=韩国 value=10.0
key=老挝 value=134.0
key=加拉大 value=1.0
当字符串变的时候但方法不用改(数据一定是对应的)
先谢谢各位大虾了!
解决方案 »
- 求静态内部类的加载机制
- 【hibernate】这辈子你都遇不到的,遇到了也解决不了的问题
- 500分,关于jboss集群及性能测试,有集群经验的请进!
- 请问除了JB9外,还有那些软件可以用来编写java。谢谢了!
- 如何写spring+hibernate的测试代码
- 有没有比较完整的JBuilderX+Tomcat+Mysql开发WEB应用程序的实例或教学方案
- 高分求助:tomcat运行一段时间后页面报连接不上数据库?急在线等
- jndi name ear file里找不到?
- 找一个数据库取到生成XML,在解析后插入数据库中的例子.400分(1)
- 求教关于Applet程序的最初级问题。
- 怎么设置IE浏览的存活时间
- java垃圾回收的疑问(new class.forname classloader)
新建两个数据array1,array2
遍历array中的每一个元素,如果可以转化成数字,添加到array2,否则添加到array1,
然后分别取array1与array2对应下标的元素为一组做为map的一个key-value对.
String str = "中国,美国,日本,新加坡,10,12,20,13,韩国,10.0,老挝,134.0, 加拉大,1.0";
String []s = str.split(",");
Map map = new HashMap();
List list = new ArrayList();
List list1 = new ArrayList();
List list2 = new ArrayList();
for(int i=0;i<s.length;i++){
list.add(s[i]);
}
for(int i=0;i<list.size();i++){
if(containDig((String)list.get(i))){
list1.add(list.get(i));
}else{
list2.add(list.get(i));
}
}
if(list1.size() == list2.size() && list1.size()>0){
for(int i=0;i<list1.size();i++){
map.put(list2.get(i), list1.get(i));
}
}
for(Object o:map.keySet()){
System.out.println(o + "分数是:" + map.get(o));
}
}
public static boolean containDig(String s){
String pattern = "[0-9]+[.]?[0-9]*";
if(s.matches(pattern)){
return true;
}else{
return false;
}
}输入结果是:新加坡分数是:13
日本分数是:20
加拉大分数是:1.0
韩国分数是:10.0
老挝分数是:134.0
美国分数是:12
中国分数是:10
public static void main(String[] args) {
_3_8_regexTest test = new _3_8_regexTest();
String str="中国 美国 日本 新加坡 10 12 20 13韩国10.0老挝134.0 加拉大1.0";
String regex = "[\u4e00-\u9fa5]+";
List<String> ls = test.getList(str, regex);
regex = "-?[0-9]+(\\.[0-9]*)?";
List<String> ls1 = test.getList(str, regex);
Map<String,String> result = new HashMap<String,String>();
if(ls.size() == ls1.size()) {
for(int i=0;i<ls.size();i++) {
result.put(ls.get(i), ls1.get(i));
}
}else {
System.out.println("结果存在问题,请检查");
return;
}
//结果测试
for(Map.Entry<String, String> entry : result.entrySet()) {
System.out.println("key: " + entry.getKey() +" value: " +entry.getValue());
}
}
public List<String> getList(String str,String regex) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
List<String> ls = new ArrayList<String>();
while(m.find()) {
ls.add(m.group());
}
return ls;
}
空格是没有规律的,字符串是数据库里的不好改.还有这个字符串是会变的 但一定是 key value