簡體   English   中英

Java將字符串轉換為整數以進行比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM