java - 如何判断字符串是否按字母顺序自然排序 - java

标签 java string methods alphabetical

我正在使用 Java 创建一个名为 isOrdered 的方法来判断字符串是否按字母顺序自然排序。例如,如果输入是“effort”或“Aaaabbyy”,该方法将返回 true,而“hello”则会返回 false,因为出现了字母“h”在字母“e”之后。

到目前为止我已经解决了这个问题,

public class orderWording {
    public static void main(String[] args) {
       System.out.println(isOrdered("effort")); //should appear true
    }
    public static boolean isOrdered (String s) {
       for (int i = 0; i < s.length(); i ++) {
            if (s.charAt(i) == /*alphabet */ ) {
                return true;
            }
            else {
                return false;
            }
       }
    }
}

但是,我不知道如何将每个字符与字母表进行匹配,以了解该字符串是否自然按字母顺序排列。

我考虑过在 isOrdered 方法中创建一个嵌套循环。当第一个循环遍历字符串时,第二个循环将这些字符与字母表的顺序进行匹配。

类似的东西,

    public static boolean isOrdered (String s) {
       String a = 'abcdefghijklmnopqrstuvwxyz'
       for (int i = 0; i < s.length(); i ++) {
           for (int j = 0; j < a.length(); j ++){
               if (s.charAt(i) == a.charAt(j) ) {
                   return true;
               }
               else {
                   return false;
               }
           }
       }
    }

尽管如此,我不确定这是否是解决此问题的正确方法。

感谢您的帮助。

最佳答案

我认为这应该可以解决您的问题。我添加了另一种方法来检查它是否也按降序排序。

public class OrderWording {
    public static void main(String[] args) {
       System.out.println(isAscendingOrdered("effort")); //true
       System.out.println(isAscendingOrdered("java")); //false
       System.out.println(isDescendingOrdered("Yea")); //true
    }

    public static boolean isAscendingOrdered (String s) {
       s=s.toUpperCase();
       for (int i = 0; i < s.length()-1; i ++) {
          if (s.charAt(i)>s.charAt(i+1))
              return false;                
       }
       return true;
    }

    public static boolean isDescendingOrdered (String s) {
       s=s.toUpperCase();
       for (int i = 0; i < s.length()-1; i ++) {
          if (s.charAt(i)<s.charAt(i+1))
              return false;       
       }
       return true;
    }
}

希望这有帮助。干杯!

关于java - 如何判断字符串是否按字母顺序自然排序 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60386953/

相关文章:

ruby - 数组初始化和方法计数增加 ?秘诀是什么?

java - 加工中的打地鼠

java - 通过 Intent 传递内容值(value)

string - 根据 Pandas 中其他两列的条件创建一个列

c# - 在 C# 中优化循环字符串连接的性能

c# - 使用三元语句将扩展方法分配给委托(delegate)

java - 如何在主方法中获取在不同方法中设置的私有(private)变量?

java - spring-boot-test spyBean 注释未注入(inject)依赖项

java - 查找 2 个给定节点之间的所有路径

java - 解析java中的转义空间