【问题标题】:java compare comma separated stringjava比较逗号分隔的字符串
【发布时间】:2019-09-13 23:55:17
【问题描述】:

我正在尝试比较 java 中的逗号分隔字符串。如果它包含一周中的所有天,则返回 true

import java.util.Arrays;

String scheduleDays="Wed,Tue,Mon,Thu,Sun,Fri,Sat";

if (Arrays.equals(Arrays.sort(scheduleDays.split(",")), ['Fri', 'Mon',  'Sat', 'Sun', 'Thu', 'Tue', 'Wed']){
    return true;
}
 else {
   return false
 }

有没有更快的比较方法,我想用排序方法来比较一周中的排序天数。

上面的好像都行不通,再多研究一下。

【问题讨论】:

  • 'Fri' 甚至可以编译吗?
  • 它无法编译。试过 String[] sortedArray = new String[]{'Fri', 'Mon', 'Sat', 'Sun', 'Thu', 'Tue', 'Wed'};
  • 没错。 Java 将' 用于char,而不是String。改用"new String[]{"Fri", "Mon"...};
  • 似乎在编译期间它在下面抱怨 String[] dayStrArray = Arrays.sort(scheduleDays.split(","));
  • 你查看文档是否有Arrays.sort()

标签: java arrays sorting split


【解决方案1】:

使用List<String> 作为基线比对数组进行排序更简洁,只需使用containsAll() 进行检查。

这样的事情可能对你有用:

public static void main(String[] args) {
    System.out.println(checkDays("Wed,Tue,Mon,Thu,Sun,Fri,Sat")); // true
    System.out.println(checkDays("Tue,Mon,Thu,Sun,Fri,Sat"));     // false
}

static List<String> allDays = Arrays.asList("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
public static boolean checkDays(String days) {
    return Arrays.asList(days.split(",")).containsAll(allDays);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    相关资源
    最近更新 更多