黑马程序员技术交流社区

标题: 题库ghappy的2种解答方法,一种采用if逐一判断,一种采用正则解答,欢迎马友交流学习. [打印本页]

作者: Albertups    时间: 2016-12-14 23:47
标题: 题库ghappy的2种解答方法,一种采用if逐一判断,一种采用正则解答,欢迎马友交流学习.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
  如果字符串中的’g’的相邻左边或者右边有另外一个’g’,则’g’在这个字符串中是happy的,
如果字符串中所有的’g’都是happy的则返回true,否则返回false。
*/
public class Ghappy {
        public static void main(String[] args) {
       String sr ="ggsdwwehappydfg";
       System.out.println(method1(sr));
        }
        public static  boolean method1(String s){
                //字符串长度为1,不可能happy
                if(s.length()<=1){
                        return false;
                }
                //判断第一个元素为g的情况
                else if(s.charAt(0)=='g'&&s.charAt(1)!='g'){
                        return false;
                }
                //判断去掉头,尾字符后的情况,不然判断左或者右相邻的元素会提示索引越界异常
                for (int i = 1; i < s.length()-1; i++) {
                        if(s.charAt(i)=='g'&& (s.charAt(i+1)!='g'&&s.charAt(i-1)!='g'))
                                return false;
                        //判断最后一个元素为g的情况
                    if(s.charAt(s.length()-1)=='g'&&s.charAt(s.length()-2)!='g'){
                                return false;
                        }
                }
                //如果上述判断后都没有返回false,表示字符串真的是happy了~
                return true;
        }
        private static boolean method2(String s) {
                if(!s.contains("g")){
                        return false;
                }
                String regex ="g+";
                Pattern p =Pattern.compile(regex);
                Matcher m=p.matcher(s);
                while(m.find()){
                        String s1 =m.group();
                        if(s1.length()==1){
                                return false;
                        }
                }
                return true;
        }
}
作者: wyh2016    时间: 2016-12-14 23:53
very nice!!!
作者: Albertups    时间: 2016-12-14 23:59
wyh2016 发表于 2016-12-14 23:53
very nice!!!

大黑是否还有不同解法?
作者: Mr.leung    时间: 2016-12-15 03:10
我今天最想说:「爱生活,更爱黑马论坛APP!——来自黑马专属客户端」.

作者: liuhuan123    时间: 2016-12-15 07:47


作者: 18219116868    时间: 2016-12-15 12:13
还是正则简单哈


作者: Albertups    时间: 2016-12-15 12:19
Mr.leung 发表于 2016-12-15 03:10
我今天最想说:「爱生活,更爱黑马论坛APP!——来自黑马专属客户端」.

其实我想说的是me too~

作者: Albertups    时间: 2016-12-15 12:20
18219116868 发表于 2016-12-15 12:13
还是正则简单哈

是的,正则无解的存在~


作者: 嘎嘎笔    时间: 2016-12-15 12:27
我也是用的正则…顶顶顶

作者: rebirf    时间: 2016-12-15 23:23
代码太长,懒得看……





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2