java - 无法从java中的布尔方法获得返回
问题描述
试图检查单词的字母是否按字母顺序排序。但我没有从该方法中得到任何回报。
import java.util.Scanner;
public class A284 {
//Write a Java program to check
// if each letter of a given word (Abecadrian word) is less than the one before it.
public static boolean abecidarianWord(String word){
int index=word.length()-1;
for(int i=0;i<index;i++){
if (word.charAt(i)<=word.charAt(i+1)){
return true;
}else return false;
}
return true;
}
public static void main(String[] args) {
String entry;
System.out.println("input a word: ");
Scanner s1=new Scanner(System.in);
entry=s1.next();
abecidarianWord(entry);
}
}
解决方案
你这里有两个问题。
首先,您没有使用从返回的值abecidarianWord
,您只是调用它并忽略结果,因此您无法知道该方法将返回什么。因此,您应该将返回值分配给一个变量并对其进行处理。例如,在您main
的天真实现结束时会执行以下操作:
boolean isOrdered = abecidarianWord(entry);
if (isOrdered) {
System.out.println("String is ordered");
} else {
System.out.println("String is not ordered");
}
其次,在abecidarianWord
您在循环的第一次迭代后立即返回,这只会告诉您您的条件是否对前两个字符成立。
相反,您可能希望在false
发现一对不遵守条件的情况下立即返回,并true
在没有“意外”的情况下到达循环末尾时返回,例如:
public static boolean abecidarianWord(String word) {
for (int i=0; i < word.length -1; i++) {
if (word.charAt(i) > word.charAt(i+1)) {
return false;
}
}
return true;
}
推荐阅读
- python - 使用滚动从下拉菜单中抓取
- c# - 如何在 Unity 2D 中通过触摸屏幕来移动角色
- asp.net-core - 具有多个 SUM 的 ASP.NET Core Entity Framework SELECT
- html - 使用 *ngFor 创建多个单选按钮
- css - box-shadow 没有被应用到表头
- docker - Dockerfile 入口点二进制设置为环境变量
- firebase - Firestore 检索多个文档安全规则
- nginx - Kubernetes - 入口配置,两条路径重定向到不同的命名空间
- python - Apache2服务器页面没有响应
- python - 过滤并取出日期的某些元素