我必须创建一个方法,将对象作为参数传递并比较两个MyString对象。
int compareTo(MyString anotherString)
我还必须创建一个将传递字符串并将其与对象进行比较的文件,并将比较两个对象并忽略这些案例。问题是我必须不重复代码。伪代码会有所帮助,但解释我做错了什么以及一个例子是最有必要的。
public int compareTo(BigString ob)
{
BigString comp;
for(int i =0;i < SIZE;i++)
if(thatArray[i] > comp.thatArray[i])
{
return 1;
}
else if( thatArray[i] == comp.thatArray[i])
{
return 0;
}
else if( thatArray[i] < comp.thatArray[i] )
{
return -1;
}
}
答案 0 :(得分:1)
- 如果您的主要目的是比较String对象并对其进行排序,那么最好使用java.lang.Comparable<T>
。
- 如果您想根据多个属性比较两个对象并对其进行排序,请使用java.util.Comparator<T>
。
请在此处查看此示例:
http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/
答案 1 :(得分:1)
当一对字符匹配时,您的函数返回0并忽略其余输入。但是,在这种情况下,它应该继续使用下一个字符。
使用此方法比较字符串或char数组是不安全的,因为它纯粹依赖于char的数值,这不一定与字母顺序相同。您应该使用String.compareTo(String)方法,因为它还会检查输入的大小。要检查大小写,只需将String对象转换为大写/小写,然后进行比较。