当前位置: 代码迷 >> J2SE >> 这么的字符串遍历,比较,截取
  详细解决方案

这么的字符串遍历,比较,截取

热度:8330   发布时间:2013-02-25 00:00:00.0
这样的字符串遍历,比较,截取
大家好!小弟java新手,想问问一个简单的字符串处理问题
字符串一:"10::101:ABC:102:GUANGZHOU :103:OK: "
字符串二: "10:$:101:ABC$:102:GUANGZHOU$:103:OK"
$为回车换行,即为:
10:
:101:ABC
:102:GUANGZHOU
:103:OK

我认为需要对字符串(非空部分)一里面的每一个字符去判断,对每对“:”,从上一对“:”的结束位置,到这一对“:”的第二个“:”之前字符串都要截取出来串到字符串二末尾,那么这里面需要用到对每一个字符截取、判断是否为“:”,添加“$”,记录上一对“:”的结束位置,这一对“:”的结束位置。

想请问一下以上都需要哪些具体的java 方法?效率方面可行么?

或者有什么其他快速有效的方法来遍历字符串一?

请指教,谢谢

------解决方案--------------------------------------------------------
Java code
public class Test {    public static void main(String[] args) {        String s1 = "10::101:ABC:102:GUANGZHOU :103:OK: ";        String[] ss = s1.split(":");        StringBuilder stringBuilder = new StringBuilder();        int loops = ss.length - 1;        for (int i = 0; i < loops; i += 2) {            stringBuilder.append(ss[i]);            stringBuilder.append(":");            stringBuilder.append(ss[i + 1]);            stringBuilder.append("$");            stringBuilder.append(":");        }        String s2 = stringBuilder.toString();          s2 = s2.substring(0, s2.length() - 2);        System.out.println(s2);    }}
------解决方案--------------------------------------------------------
"10::101:ABC:102:GUANGZHOU :103:OK: ".replaceAll("(:\\d)", "\\$$1")
  相关解决方案