【问题标题】:Can `String.length()` be used to see which of two String objects is larger?`String.length()` 可以用来查看两个 String 对象中哪个更大?
【发布时间】:2016-02-15 03:56:26
【问题描述】:

如果String.length()不能用来比较两个String对象并确定哪个对象更大,那么什么字符串方法会做这样的事情呢?当我运行此代码时,它会立即终止。有没有比较字符串对的方法?我在这里使用字符串类的 API 作为参考:https://docs.oracle.com/javase/6/docs/api/java/lang/String.html

public class ThingsComparer {

    public static void main(String[] args) {

        String ObjectOne = new String("One");
        String ObjectTwo = new String("Two");

        if (ObjectOne.length() > ObjectTwo.length())
        {
            System.out.println("ObjectOne is larger");
        }
        else if (ObjectOne.length() < ObjectTwo.length())
        {
            System.out.println("ObjectTwo is larger");
        }
        else if (ObjectOne.equals(ObjectTwo)) 
        {
            System.out.println("ObjectOne and ObjectTwo are equal");
        }
    }
}

【问题讨论】:

  • 你的意思是更长还是更大?
  • 可以在doc页面看到compareTo的方法,为什么不用呢?如果这不是您要查找的内容,则必须更清楚地了解更大的含义?
  • 是的,我指的是长度,所以我认为更长的措辞是正确的
  • 第三个 if 语句比较的是字符串,而不是它们的长度。你的代码是正确的,
  • 是的,这就是我想要的。谢谢

标签: java string object compare string-comparison


【解决方案1】:
.....
.....
 else if (ObjectOne.length() == ObjectTwo.length()) 
    {
        System.out.println("ObjectOne and ObjectTwo are equal");
    }

此外,根据 Thilo 的说法,在您尝试寻找大于和小于条件之后,您根本不需要 else if (ObjectOne.length() == ObjectTwo.length())。第三个条件是什么?它是平等的。

【讨论】:

  • length(),而不是length
  • 我不会称之为“平等”。它们的长度相同。
  • @Thilo 阅读了主帖中的最后 2 个 cmets。这正是他正在寻找的东西
  • 另外,为什么if呢?应该是一个简单的else
【解决方案2】:

@Peanutcalota

上面的代码工作正常。您没有得到任何输出的原因是 ObjectOneObjectTwo 2 个对象具有不同的字符串并且具有相同的长度。

所以第一个和第二个条件不会起作用,因为它们的长度相同。

最后一个条件不起作用,因为两个字符串不同。

ObjectOne.equals(ObjectTwo) 仅在它们具有相同字符串时才有效。

我已经尝试运行这个程序,它运行良好。

试一试。

【讨论】:

    猜你喜欢
    • 2022-11-12
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2016-01-27
    相关资源
    最近更新 更多