2014-02-23 21 views
1

,再嘗試重新& &,看是否lock_combination正好是9個字符長如何找出如果用戶輸入有x個字

import java.util.Scanner; 

public class charlespeppers { 

    public static void main(String[] args) { 

     Scanner user_input = new Scanner (System.in); 

     String lock_combination; 
     System.out.print ("Please enter a lock combination (ddRddLddR) : "); 
     lock_combination = user_input.next(); 


     if (lock_combination.charAt(0) >= '0' && lock_combination.charAt(0)<= '9' 
     && lock_combination.charAt(1) >= '0' && lock_combination.charAt(1)<= '9' 
     && lock_combination.charAt(3) >= '0' && lock_combination.charAt(3)<= '9' 
     && lock_combination.charAt(4) >= '0' && lock_combination.charAt(4)<= '9' 
     && lock_combination.charAt(6) >= '0' && lock_combination.charAt(6)<= '9' 
     && lock_combination.charAt(7) >= '0' && lock_combination.charAt(7)<= '9' 
     && lock_combination.charAt(2) == 'R' 
     && lock_combination.charAt(8) == 'R' 
     && lock_combination.charAt(5) == 'L' 
     && lock_combination == 9); 
     { 
      System.out.println("This is a valid lock combination."); 
     } 

} 
} 
+0

您面臨的問題是什麼? – Kakarot

+2

lock_combination.length()? – xp500

+0

您是否熟悉正則表達式?這個工具可以讓你的代碼更加簡潔。 –

回答

1

您可以使用Stringlength()方法:

public int length():返回此字符串的長度。長度等於字符串中Unicode代碼單元的數量。

if (... && lock_combination.length() == 9) 
    System.out.println("This is a valid lock combination."); 
+0

謝謝,它也會打印出我所在的行。另一個問題是如何在這個腳本中關閉掃描器?我已經嘗試了很多地方放Scanner.close();它告訴我「不能對類型掃描器的非靜態方法close()進行靜態引用」 – user3316886

+0

@ user3316886您是否在使用'Scanner.close()'?你**必須使用'user_input.close()'。閱讀Java中的'static'。 – Christian

+0

哦,我現在看到,因爲掃描儀是「user_input。謝謝 – user3316886

0

要找到lock_combination你可以使用下面的代碼段的長度:

if(lock_combination.length() == 9) 
相關問題