比较java中的两个字符串

时间:2014-06-25 11:01:38

标签: java

我想在java中比较两个字符串,我需要在下面的代码中使用“是”。这里我使用了包含函数。

  String String1="2014-08-12 09:00:00";
  String String2="2014-08 09:00:00";

   if(String1.contains(String2)){
       System.out.println(" yes ");
   }else{
       System.out.println(" no ");
   }                 

包含功能无法做到这一点。我该怎么编码?这是样本..实际上我正在将String1与内容列表进行比较。

我需要帮助。

3 个答案:

答案 0 :(得分:0)

编写自己的解析器函数。在我的脑海里,我认为你可以做到

  1. 创建一个HashMap。迭代第一个字符串。将每个字符存储为键,而不将该字符作为值存储。
  2. 现在迭代第二个String。对于每个字符,从Hashmap获取值。如果为0则返回否则将值减1。
  3. 如果达到第二个字符串的结尾,则返回是。

答案 1 :(得分:0)

我假设您想部分比较字符串以查看是否包含另一个字符串。如果您想部分比较字符串以查看它们是否相等,您可以使用此answer中的此方法:

public boolean contains(final String base, final String search){
    final String baseLowerCase = base.toLowerCase(Locale.ENGLISH);
    for(final char c : search.toLowerCase(Locale.ENGLISH).toCharArray())
        if(baseLowerCase.indexOf(c) < 0)
            return false;
    return true;
}

请注意,这并非万无一失。理想情况下,您可能希望设置某种阈值而不是仅等于1个字符。它也不会检查字符是否在两个字符串中的相同位置。

答案 2 :(得分:-1)

如果您要在两个日期之间进行比较,请尝试此操作:

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
        String String1 = "2014-08-12 09:00:00";
        String String2 = "2014-08 09:00:00";

        Date date1 = formatter.parse(String1);
        formatter.applyPattern("yyyy-MM HH:mm:dd");
        Date date2 = formatter.parse(String2);

        if(date1.equals(date2)){
            System.out.println(" yes ");
        }else{
            System.out.println(" no ");
        }