大家好!小弟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")