2014-07-14 67 views
-2

在Java中返回-1是什麼意思?例如,如果我試圖下面的字符串「98979」轉換成int類型轉換,而無需使用任何庫函數:在Java中返回-1

public convertStringToInt(String num){ 
    int result = 0; 
    int zeroAscii = 48; 
    int nineAscii = 57; 
    for (char c: num.toCharArray()){ 
     if(c>=zeroAscii && c<=nineAscii){ 
      result = result*10 + (c-nineAscii); 
     } 
     else{ 
      return -1; 
     } 
    } 
    return result; 
} 
+5

您能否提供一個有效的方法?您錯過了該函數的返回類型。 – WarrenFaith

+0

這是你自己的代碼嗎? – JamesB

+0

這不是一個「有效」的Java代碼。 'Java'方法必須具有返回類型 –

回答

0

你的方法是不完整的(沒有指定返回值),但問題仍然是有效的。返回值的含義完全取決於開發人員的決定。所以無論你自己還是寫了你使用的圖書館的人。對於編寫良好的庫,返回值的含義將在文檔中指定。

+0

我真的不明白這怎麼回答不了原來的問題。問題是如果返回-1有一個含義,舉一個例子,答案是它沒有特別的意義,完全取決於開發者。 –

0

它本身就沒有意義。取決於調用函數的上下文程序,順便說一句,缺少返回類型。如果您沒有編寫該代碼,則假設-1意味着錯誤(因爲屬於要解析的字符串的字符不是數字,即34E56j)

2

在這種情況下,它會中斷計算並給出您的結果-1這意味着字符串不能被翻譯。

爲什麼-1

因爲此代碼僅適用於正數。

0

返回-1意味着什麼取決於方法。在這種情況下,這意味着遇到的字符不在(包括)zeroAscii和nineAscii之間。

如果找到列表元素,如果找不到元素,也可能得到-1。這是(afaik)return -1的最常用用法;

-1

喜首先你的方法應該有一個返回類型,比如字符串,整數... 其次,如果你的返回類型是整數,那麼返回-1將返回-1,否則你的結果

希望這有助於!!!!

0

它取決於函數的語義。如果函數的意思是返回正值(例如返回大小,索引)的int值,則返回負值表示輸入存在某種錯誤。

來自String.indexOf(int pos)的java文檔 - 返回指定字符第一次出現的此字符串中的索引,或者如果字符未出現,則返回-1。

0

你的方法沒有返回類型,在你的方法中提供返回類型的int。

public int convertStringToInt(String num){... 

而且return -1意味着什麼在Java中,你只是返回一個int值,多數民衆贊成它。

返回-1的唯一有意義的解釋似乎是,調用您的函數的代碼需要int的返回類型,並將其從傳遞的String轉換爲int。因此,當傳遞的字符串不是正確的數字格式/值時,該函數會返回一個隨機亂碼值,在本例中爲-1。順便說一下,這很可能是-10,-100等

0

它更多是一個設計的事情。

Integer.parseInt("abc")// throws an error. Because "abc" cannot be converted to an Integer and trying to convert it would definately be foolish. 

String s = "abc"; 
s.indexOf('x'); // returns -1. 

這不會導致錯誤,因爲(坦率地說)JAVA語言的設計者可能有一點東西,當他們決定這樣做。 indexOf()不能有副作用,因爲-1不是索引是java。