大家好!小弟java新手,想问问一个简单的字符串处理问题
字符串一:"10::101:ABC:102:GUANGZHOU   :103:OK:                                        "
字符串二: "10:$:101:ABC$:102:GUANGZHOU$:103:OK"
$为回车换行,即为:
10:
:101:ABC
:102:GUANGZHOU
:103:OK我认为需要对字符串(非空部分)一里面的每一个字符去判断,对每对“:”,从上一对“:”的结束位置,到这一对“:”的第二个“:”之前字符串都要截取出来串到字符串二末尾,那么这里面需要用到对每一个字符截取、判断是否为“:”,添加“$”,记录上一对“:”的结束位置,这一对“:”的结束位置。想请问一下以上都需要哪些具体的java 方法?效率方面可行么?或者有什么其他快速有效的方法来遍历字符串一?请指教,谢谢

解决方案 »

  1.   


    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里面的方法是哪些
      

  3.   

    "10::101:ABC:102:GUANGZHOU :103:OK: ".replaceAll("(:\\d)", "\\$$1")
      

  4.   


    非常感谢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
      

  5.   

    怎么我用s3.replaceAll("\\|", "\\$");根本不能把"|"变成"$"的啊
      

  6.   

    我回复在这里:
    http://topic.csdn.net/u/20110515/14/4581ea63-1cb1-443e-9dc2-0690faaf2069.html
      

  7.   

    八楼那里有说明的喔。。另外有另一张贴http://topic.csdn.net/u/20110515/14/4581ea63-1cb1-443e-9dc2-0690faaf2069.html有了原来的逻辑
      

  8.   

    敢问楼主能不能帮忙解决一下这个问题,如何将下面的字符串截取存到数组中
    String re = "的大家" +
    "般的" +
    "防音室" +
    "防音室対応" +
    "質問" +
    "基本的" +
    "言得、" +
    "防音室" +
    "演奏総重量"+
    "馴染一般";
    String[] arr = re.split("\r\n");
    for(int i = 0; i < arr.length; i++){
    System.out.println("=======>"+arr[i]);
    }