【问题标题】:Printing multiple characters from a string [duplicate]从字符串中打印多个字符[重复]
【发布时间】:2016-01-11 19:13:48
【问题描述】:

如果我有一个字符串“SSSAAADDDCCC”,我将如何只打印“SADC”。可以使用 SubString 完成还是必须使用 charAt()?

【问题讨论】:

    标签: java


    【解决方案1】:

    有一种简单的方法可以做到这一点 - 但是,由于我没有看到任何代码,也没有看到您付出的任何努力,所以我不会只给您答案。下面是一些伪代码,您可以尝试找到正确的答案。祝你好运!

    currentChar = myString.charAt(0);
    i = 0;
    print current character //as per comments, cover the base case
    while(string has more characters)
        if current character != next character
           print next character
        i++
    

    【讨论】:

    • 我喜欢您的无代码方法,但“打印下一个字符”存在一个问题。这个解决方案将如何处理像abc 这样的字符串,因为看起来只有bc 会被打印出来。
    • 啊——说得好。考虑到这一点,我会更新。
    【解决方案2】:

    使用正则表达式将所有重复字符替换为单个字符:

    "SSSAAADDDCCC".replaceAll("(.)\\1+", "$1")   // returns "SADC"
    

    (.) 匹配并捕获一个字符。
    \\1+ 匹配一个或多个捕获字符的实例。
    $1 用捕获的字符替换整个匹配值.

    不重复的字符不匹配,因此被单独留下。

    【讨论】:

      【解决方案3】:

      如果你不喜欢 charAt 方法,你可以使用这样的子字符串:

      int j=0;
      String in="sssdddaaaccc";
      String out="";
      for(int i=0;i<4;i++)
      {
          out=out+in.subString(j,j+1);
          for(j=j; j<3;j++);
      }
      System.out.println(out);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-23
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 2019-02-19
        • 2015-02-04
        相关资源
        最近更新 更多