2013-11-01 33 views
1

該程序應該接受用戶輸入的字符串並將其返回。 (例如,「Hello」是輸入「olleH」是輸出。)通過運行java ReverseCL2 Hello這樣的程序來完成此操作。但是,如果沒有輸入字符串,它將打印一個ArrayOutOfIndexException。我需要它來打印出用戶應該做的事情(請在運行代碼時輸入一個字符串。)我嘗試了下面的內容,並且還嘗試了if (args[0].equals(null))。在此先感謝您的幫助:)Java - 當沒有用戶輸入時會阻止錯誤信息 - 家庭作業

public class ReverseCL2 
{ 
    public static void main(String[] args) 
    { 
     String s = args[0]; 
     String rev = ""; 
     if (args[0].isEmpty()) 
     { 
      System.out.println("Input a string to be reversed"); 
     } 
     else 
     { 
      for (int i=0; i<s.length(); i++) 
      { 
       rev = s.charAt(i) + rev; 
      } 
      System.out.println(rev); 
     } 

    } 
} 

回答

1

檢查args.length爲零第一,即

if(args.length == 0 || args[0].isEmpty()) 
{ 
    // <Handle special case however you like> 
} 

ArrayIndexOutOfBoundsException你得到的是試圖訪問args[0]args有大小0結果。

0

!檢查你的代碼的參數數組值

if (!args[0].isEmpty() && args.length==0) 

見上文線。

public class ReverseCL2 
{ 
    public static void main(String[] args) 
    { 
     String s = args[0]; 
     String rev = ""; 
     if (!args[0].isEmpty() && args.length==0) 
     { 
      System.out.println("Input a string to be reversed"); 
     } 
     else 
     { 
      for (int i=0; i<s.length(); i++) 
      { 
       rev = s.charAt(i) + rev; 
      } 
      System.out.println(rev); 
     } 

    } 
} 
+1

錯了! args的大小是0,所以args [0]不存在! –

+0

作出更改請參閱.. –

+1

這是錯誤的... –

1
public class ReverseCL2 
{ 
    public static void main(String[] args) 
    { 
     if(args.length == 0 || args[0].isEmpty()) 
     { 
      System.out.println("Input a string to be reversed"); 
      return; 
     } 

     String s = args[0]; 
     String rev = ""; 

     for(int i = 0; i < s.length(); i++) 
     { 
      rev = s.charAt(i) + rev; 
     } 

     System.out.println(rev); 

    } 
} 
+0

+1:公平點 - 你(即OP)仍然需要檢查它,然後是空的。 –

+0

'if(args.length == 0 || args [0] .isEmpty())'檢查'空數組'和'空值'...這段代碼是絕對正確的。 (這真的是一個基本問題) –

+0

是的,我知道 - 我注意到我很快回答了這個問題,只是表明如何避免這個異常,同時又愚蠢地忘記了第二部分的情況。因此,我給你的upvote,然後我糾正了自己:) –

0
It simple arg0 is array so before get data from That check Array size 


if(args.length == 0) 
{ 
    // <Show message to user > 
}else{ 

// <write here Working code > 

} 
0

除了上面回答一個更簡單的代碼(閱讀老虎鉗)將

public static void main(String args[]) { 

    switch (args.length) { 

     case 0 : System.out.println("Input a string to be reversed"); 
      break; 
     default: //your logic 

    } 
} 
+0

不幸的是,當'args.length!= 0'時,不會對'args [0]'進行空的檢查。 –

+0

該邏輯會在默認情況下發生(非零參數)。在處理數據之前,您可以始終檢查是空還是空。 –