设计一个返回布尔值的方法

时间:2015-05-01 09:23:49

标签: java function methods

我遇到过这个问题,而不是如何解决它。

完成以下方法以确定参数是否仅包含以下小写字符:d,r,m,f,s,1,t。如果是,则返回true;否则,返回false 如果参数为subject { described_class.token } 或为空字符串,则还返回null

true

我尝试过以下操作,但失败了:

public boolean isSonqStrinq(Strinq s){ 

谁能告诉我哪里出错了?

5 个答案:

答案 0 :(得分:1)

您每次都要比较第一个字符,您需要在while循环中移动char a = s.charAt(i);

另外,你可以在这里使用for循环,删除j计数器,并缩短return语句,如下所示:

public boolean isSongString (String s){
    if(s == null) return true;

    char[] allowedChars = new char[] {'d','r','m','f','s','l','t'};

    for(int i=0; i < s.length(); i++) {
        if(Arrays.asList(allowedChars).contains(s.charAt(i)))
            continue;
        else
            return false;
    }
    return true;
}

编辑:

JoD。的答案是最好的,它允许将解决方案简化为单一声明:

public boolean isSongString (String s){
    return ((s == null) ||
            (s.matches("^[drmfslt]*$")));
}

答案 1 :(得分:1)

因为这是一项练习,我认为最好只提供一些好的线索。发现的乐趣比全力扰流更好。

  1. while (i < s.length())内,条件始终为真,您的while循环将永久运行。
  2. char a = s.charAt(i)只执行一次,并且在整个程序执行期间只包含字符串的第二个字符。
  3. 为什么如果练习声明“如果参数为null或者是一个空字符串,也返回true。”,你会不会尝试先做其他事情之前的事情吗?这是你的代码的50%在10秒内完成。
  4. 使用Regular Expressions验证字符串最简单。 String有一个特别有趣的方法。剧透警告:"^[drmfslt]*$" - 不,不是我用另一种语言骂你:-D

答案 2 :(得分:0)

你应该将我初始化为0和a到&#39; &#39;并且在第一个陈述应该是

public  void saveCollege() {
    Student student1= new Student();
    student1.setStudentName("Student1");


    ArrayList<Student> list= new ArrayList<Student>();
    list.add(student1);

    College college1= new College();
    college1.setCollegeName("College3");
    college1.setCollegeId(1);

    college1.setStudents(list);


    getEntityManager().merge(college1);
}

这应该可以正常工作。如果没有,你可以回复。

答案 3 :(得分:0)

public boolean isSongString (String s){
    int i = 0;
    int j = 0;

    while (i < s.length()-1){

        char a = s.charAt(i);
        if(a == 'd' | a == 'r' | a == 'm' | a == 'f' | a == 's' | a == 'l' | a == 't')
            j++;
        else
            break;

    i++;
    }
    if (j == s.length())
        return true;
    else
        return false;
}

答案 4 :(得分:0)

试试这个:

-z

输出: 假 真正 真正 真