Java 如何检查列表是否<;字符串>;排序是否与番石榴中的特定图案匹配?

Java 如何检查列表是否<;字符串>;排序是否与番石榴中的特定图案匹配?,java,guava,Java,Guava,我试图检查列表元素是否按其元素的第一个字符排序 以匹配此格式 (空白、数字、字母) 空白是一个8个空间字符串“”。 我试过了,但没用 Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(abc); 我想用番石榴来做这件事,我成功地用三个for循环来做这件事。由于你没有使用字符串的自然排序,你必须实现你自己的比较器。这里有官方的比较器。根据文件,比较器接口为: 一种比较函数,它对某些对象集合施加总排序 它的比较函数将返回: 作为第一个参数

我试图检查
列表
元素是否按其元素的第一个字符排序 以匹配此格式 (空白、数字、字母) 空白是一个8个空间字符串<代码>“

”。 我试过了,但没用

Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(abc);

我想用番石榴来做这件事,我成功地用三个
for
循环来做这件事。

由于你没有使用字符串的自然排序,你必须实现你自己的比较器。这里有官方的
比较器
。根据文件,比较器接口为:

一种比较函数,它对某些对象集合施加总排序

它的比较函数将返回:

作为第一个参数的负整数、零或正整数小于、等于或大于第二个参数

您可以使用
Ordered
类的
from()
方法。此方法将执行比较字符串任务的自定义比较器作为参数:

public boolean isOrdered(List<String> list) {
        return Ordering.from(getComparator()).isOrdered(list);
}
我已通过以下方式测试了上述代码:

public void myMethod() {
    List<String> ordered = Arrays.asList("        hello", "1hello", "2hello", "8hello", "hello", "zhello");
    List<String> unordered = Arrays.asList("        hello", "1hello", "8hello", "2hello", "hello", "zhello");
    System.out.println(isOrdered(ordered));
    System.out.println(isOrdered(unordered));
}

提供样本输入
public void myMethod() {
    List<String> ordered = Arrays.asList("        hello", "1hello", "2hello", "8hello", "hello", "zhello");
    List<String> unordered = Arrays.asList("        hello", "1hello", "8hello", "2hello", "hello", "zhello");
    System.out.println(isOrdered(ordered));
    System.out.println(isOrdered(unordered));
}
true
false