2014-11-22 52 views
0

我對Java相當陌生,我似乎無法弄清楚我的if-else語句正在發生什麼。我一直得到「不是一個聲明」或「;」預計,我完全失去了這一點。任何建議將不勝感激!基本的Java問題

import java.util.Scanner; 

public class StringCode 
{ 

    public static void main(String[] args) 
    { 
     String name; //To hold a name 
     String name2; 
     int total; 
     int stringSize; 

     Scanner keyboard = new Scanner(System.in); 


     System.out.print("Enter first string:"); 
     name = keyboard.nextLine(); 

     System.out.print("Enter second string:"); 
     name2 = keyboard.nextLine(); 


     stringSize = name.length(); 
     if(name.compareTo(name2) == 0) 
     { 
      System.out.println(name " is equal to " name2); 
     } 
     else if (name.compareTo(name2) > 0) 
     { 
      System.out.println(name " is greater than " name2); 
     } 
     else if(name.compareTo(name2) < 0) 
     { 
      System.out.println(name " is less than " name2); 
     } 
     System.out.println(stringSize); 
     System.out.println("Number of characters in " + 
          name + " is " + stringSize); 


     showChar(name,stringSize); 
    } 

    public static char showChar(String s, int pos) 
    { 
     Scanner reader = new Scanner(System.in); 

     System.out.print("Enter position noting" + 
         " first character is at 0: "); 

     char index = reader.next().charAt(0); 

     System.out.println("Character at position 2 " + 
          " in " + s + " is " + index); 
     return index; 
    } 
} 

回答

3

您總是需要將這些字符串連接(連接)在一起,例如,

System.out.println(name " is equal to " name2); 

應該

System.out.println(name + " is equal to " + name2); 
+0

@ njzk2沒錯,這就是我的意思!這就是爲什麼我不工作的飲料:-) – splrs 2014-11-22 02:38:03

+0

謝謝,這是訣竅!我真的需要重新閱讀我的Java書...看起來像我錯過了關鍵的一步。感謝大家的迴應,這意味着很多!我喜歡stackoverflow! – user3763875 2014-11-22 12:14:53

0

你的if語句應該是這樣的,

 if(name.compareTo(name2) == 0) 
     { 
      System.out.println(name + " is equal to " +name2); 
     } 
     else if (name.compareTo(name2) > 0) 
     { 
      System.out.println(name +" is greater than " +name2); 
     } 
     else if(name.compareTo(name2) < 0) 
     { 
      System.out.println(name +" is less than "+ name2); 
     } 
0

正如其他人所指出的,你錯過了+來連接你的String(S)。但是,您也可以依靠最後一個條件是滿足的else,我建議你只有一次執行比較,你可能也使用格式化輸出像

int c = name.compareTo(name2); 
if (c == 0) { 
    System.out.printf("%s is equal to %s%n", name, name2); 
} else if (c > 0) { 
    System.out.printf("%s is greater than %s%n", name, name2); 
} else { // (c < 0) 
    System.out.printf("%s is less than %s%n", name, name2); 
}