[英]Java Converting String into Integer for Comparison
我正在為特定類編寫一個compareTo
方法用於Comparable Interface。 我需要采用兩個不同的字符串並比較它們,看看是否有一個比另一個更有價值。 我通常會使用.compareTo()
但在這種情況下它會給我一個錯誤而不能正常工作。 這就是我所擁有的:
public int compareTo(Object o) {
if (name < ((AccountOwnerComparable) o).name)
return -1;
else if (name > ((AccountOwnerComparable) o).name)
return 1;
else
return 0;
}
我知道我不能使用< or >
,只是為了表明場景是什么。
你只需要這樣做:
name.compareTo(String_to_be_compare);
public int compareTo(Object o)
將此String與另一個Object進行比較。 如果Object是String,則此函數的行為類似於compareTo(String)。
注意:
退貨 :
如果參數是一個按字典順序排列等於該字符串的字符串,則值為0 ; 如果參數是按字典順序大於此字符串的字符串,則小於0的值; 如果參數是按字典順序小於此字符串的字符串,則值大於0 。 ( 來源 )
所以對你的情況:
public int compareTo(Object o)
{
AccountOwnerComparable obj = (AccountOwnerComparable) o;
return obj.name.compareTo(this.name);
}
tw:實現類似的接口,指定你要比較的內容(通常是相同的類型),因為你沒有指定任何接口與奇數的東西相比較的東西。
Comparable
接口是通用的 。 你的類聲明應該看起來像這樣:
class AccountOwnerComparable implements Comparable<AccountOwnerComparable> {...
請注意AccountOwnerComparable
類型參數。 有了這個,你會有
public int compareTo(AccountOwnerComparable other) {
return name.compareTo(other.name);
}
在施法時你可能錯過了一個支架或什么東西。 嘗試以下代碼。
public int compareTo(Object o) {
if (name.compareTo(((AccountOwnerComparable) o).name) > 0) {
System.out.println("Greater");
return -1;
} else if (name.compareTo(((AccountOwnerComparable) o).name) < 0) {
System.out.println("Lesser");
return 1;
} else {
System.out.println("Equal");
return 0;
}
}
使用Integer.parseInt()
方法。 通過這種方式,您可以使用>
或<
,它更詳細。 我假設您要比較包含數字的兩個String
對象。 雖然你沒有在問題中寫出來,但標題卻如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.