对于String类型,方法CompareTo(String)未定义

时间:2017-04-30 05:27:36

标签: java arrays

以下内容应允许用户输入部分描述(即数组中的第二个),如果喜欢玩具的名称,则返回标题。

任何指导意见。

数组样本: - a[0] = new Toy("001", "Ball"); a[1] = new Toy("002", "Robot");

                'case 'Search':
                String toySearch;
                System.out.print("Enter description: ");
                toySearch = sc.nextLine();                  

            {
                if (toySearch.length() == 0) {
                    done = true;

                } else

                {
                    // find matching toy description against user input
                    for (int i = 0; i < inventory.length; i++) 
                    {
                                                if(inventory[i].getproductDesc().compareTo(toySearch))
                        {
                            done = false;
                        }

                        {
                            System.out.println(inventory[i].getproductDesc());
                        }
                        break;
                    }'

2 个答案:

答案 0 :(得分:0)

您正在使用compareTo,就像它返回boolean值一样。它不是。根据文档,http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html#compareTo-T-会返回int,它不会作为if条件运行。根据文档,您必须检查compareTo是否返回&#34;负整数,零或正整数&#34;

答案 1 :(得分:0)

  • 如果您使用用户定义的类进行广告资源或任何其他对象,则必须覆盖 java.lang 包的 compareTo()方法。
  • for Overriding compareTo()您需要实现 Comparable interface