大家好!小弟java新手,想问问一个简单的字符串处理问题
字符串一:"10::101:ABC:102:GUANGZHOU :103:OK: "
字符串二: "10:$:101:ABC$:102:GUANGZHOU$:103:OK"
$为回车换行,即为:
10:
:101:ABC
:102:GUANGZHOU
:103:OK我认为需要对字符串(非空部分)一里面的每一个字符去判断,对每对“:”,从上一对“:”的结束位置,到这一对“:”的第二个“:”之前字符串都要截取出来串到字符串二末尾,那么这里面需要用到对每一个字符截取、判断是否为“:”,添加“$”,记录上一对“:”的结束位置,这一对“:”的结束位置。想请问一下以上都需要哪些具体的java 方法?效率方面可行么?或者有什么其他快速有效的方法来遍历字符串一?请指教,谢谢
字符串一:"10::101:ABC:102:GUANGZHOU :103:OK: "
字符串二: "10:$:101:ABC$:102:GUANGZHOU$:103:OK"
$为回车换行,即为:
10:
:101:ABC
:102:GUANGZHOU
:103:OK我认为需要对字符串(非空部分)一里面的每一个字符去判断,对每对“:”,从上一对“:”的结束位置,到这一对“:”的第二个“:”之前字符串都要截取出来串到字符串二末尾,那么这里面需要用到对每一个字符截取、判断是否为“:”,添加“$”,记录上一对“:”的结束位置,这一对“:”的结束位置。想请问一下以上都需要哪些具体的java 方法?效率方面可行么?或者有什么其他快速有效的方法来遍历字符串一?请指教,谢谢
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);
}
}
非常感谢2楼,其实我是看到一个现存的逻辑,就抽了一部分主要的出来问大家用java来怎么实现。
想法方面比较局限于原来的逻辑。
看到2楼的方法非常惭愧。
更新了整个逻辑,请各位发表高见,谢谢判断符除了":",还有"|",":"相当于每一字段的标志,而"|"相当于同一字段的几行组成部分的分隔符
字段又分大类的字段和小类的字段,例如例子中的"10"是大类字段,没有详细说明,而"101","102"这些是属于"10"大类里面的小类字段,有各自的详细说明。
源字符串是为"10::101:ABC:102:GUANGZHOU :103:OK :11::111:TIAN HE |968 |12::",或
源字符串是为"10::101:ABC:102:GUANGZHOU :103:OK :11::111:TIAN HE |968 |12::121:Apr" 或
源字符串是为"10::101:ABC:102:GUANGZHOU :103:OK :11::111:TIAN HE |968 |12::121:Apr|12|121212"
对应输出为:
:10:
:101:ABC
:102:GUANGZHOU
:103:OK
:11:
:111:TIAN HE
968
:12:
或:
:10:
:101:ABC
:102:GUANGZHOU
:103:OK
:11:
:111:TIAN HE
968
:12:
:121:Apr
或:
:10:
:101:ABC
:102:GUANGZHOU
:103:OK
:11:
:111:TIAN HE
968
:12:
:121:Apr
12
121212
http://topic.csdn.net/u/20110515/14/4581ea63-1cb1-443e-9dc2-0690faaf2069.html
String re = "的大家" +
"般的" +
"防音室" +
"防音室対応" +
"質問" +
"基本的" +
"言得、" +
"防音室" +
"演奏総重量"+
"馴染一般";
String[] arr = re.split("\r\n");
for(int i = 0; i < arr.length; i++){
System.out.println("=======>"+arr[i]);
}