美文网首页
借助正则表达式提取并反转字符串

借助正则表达式提取并反转字符串

作者: BenjaminCool | 来源:发表于2018-12-17 16:17 被阅读51次

    java:
    题目描述:

    1. 给定一个字符串,将其中的每一个单词进行翻转并输出翻转后的字符串
    2. 单词的定义为“连续的由字母组成的子串”,例如"abc-1de/fg"的单词有3个,为["abc", "de", "fg"]
      示例:
      输入:"abc-1de/fg"
      输出:"cba-1ed/gf"
      函数体:
      public String wordReverse(String inputStr) {

    }

    
     public String wordReverse(String inputStr) {
    
    //        String str = "abc-1de/fg";
    
            if ((inputStr == null || inputStr.length() <= 0)) {
                return "";
            }
    
    
            StringBuilder builder = new StringBuilder();
    
            int prevStart = -1;
    
            Pattern pattern = Pattern.compile("[a-zA-Z]+");
            Matcher matcher = pattern.matcher(inputStr);
            while (matcher.find()) {
    
                // 添加非单词
                if (prevStart > -1) {
                    String prev = inputStr.substring(prevStart, matcher.start());
                    builder.append(prev);
                }
    
                //添加反转后的单词
                String word = matcher.group();
                for (int i = word.length() - 1; i >= 0; i--) {
                    builder.append(word.charAt(i));
                }
    
                prevStart = matcher.end();
    
            }
    
    //        System.out.println(builder.toString());
    
            return builder.toString();
        }
    
    

    相关文章

      网友评论

          本文标题:借助正则表达式提取并反转字符串

          本文链接:https://www.haomeiwen.com/subject/aprckqtx.html