当前位置:编程学习 > JAVA >>

关于字符串取值的问题

[15]aaaaa...[16]bbbbb...[17]ccccc...

其中[]中的值为数据库的ID 对应一个name

怎么取出[]中间的值呀并转化为name?

输出结果:[小明]aaaaa...[小李]bbbbb...[小黄]ccccc...
--------------------编程问答-------------------- 在线等,有谁知道的,告诉我一下! --------------------编程问答-------------------- String str = "[15]aaaaaa";
String id=str.split("\\[")[1].split("\\]")[0];
String name=query(id)//数据库查询
str.replaceAll("\\[(\\d)*\\]", "["+name+"]"); --------------------编程问答-------------------- 把ID取出来,拿到对应的名称再拼回去就行了。
取值可以用正则,不过你这里格式固定的,这样就可以了
String s = "[15]aaaaa";
String id = s.substring(1, s.indexOf("]")); --------------------编程问答-------------------- 简单点,修改表,增加name字段,然后把name字段放入[]中 --------------------编程问答-------------------- 中间格式不固定,[15]aaaaa..(aaa).[16]bbbbb...[17]ccccc...
--------------------编程问答-------------------- 用正则匹配 提取ID值 查询数据库 进行替换 --------------------编程问答-------------------- 中间格式再怎么不固定,你前面ID格式都是固定的 [IDnum]
所以你用楼上那些方法就可以做到了 --------------------编程问答--------------------
引用 5 楼 xmxcs1 的回复:
中间格式不固定,[15]aaaaa..(aaa).[16]bbbbb...[17]ccccc...

中间格式再怎么不固定,你前面ID格式都是固定的 [IDnum]
所以你用楼上那些方法就可以做到了 --------------------编程问答-------------------- String str = "[15]aaaaaa";
String id=str.split("\\[")[1].split("\\]")[0];
String name=id+"test";
str.replaceAll("\\[(\\d)*\\]", "["+name+"]"); 
System.out.println(str);

结果怎么没有变?还是[15]aaaaaa
--------------------编程问答--------------------
引用 9 楼 xmxcs1 的回复:
String str = "[15]aaaaaa";
String id=str.split("\\[")[1].split("\\]")[0];
String name=id+"test";
str.replaceAll("\\[(\\d)*\\]", "["+name+"]"); 
System.out.println(str);

结果怎么没有变?还是[……


str.replaceAll("\\[(\\d)*\\]", "[" + name + "]");
//改成
str = str.replaceAll("\\[(\\d)*\\]*", "[" + name + "]");
--------------------编程问答-------------------- [15]aaaaa...[16]bbbbb...[17]ccccc...如果有1w条,那岂不是要查1w次数据库,代价太大了,不可取。楼主可以修改表结构,比喻加一个name字段
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,