2014-01-25 43 views
-3

當我說設置一個值,我不是說如何在java中多次設置一個int/String值?

int a = 10; 或 字符串b =「你好」;

繼承人的代碼,我嘗試去上班:

import java.util.Scanner; 

public class Main { 

    private static String Password; 

    public static void main(String[] args){ 
     while(true){ 
     Scanner scanner = new Scanner(System.in); 
     String input = scanner.nextLine(); 

     String[] split = input.split(" "); 
     String split1 = split[0]; 
     String split2 = split[1]; 
     String split3 = split[2]; 



     if(split1.equals("New")){ 
      if(split2.equals("Password:")){ 
       Password = split3; 
       System.out.println("Password set to " + Password); 
      } 
     } 
     if(split2.equals("")){ 
      if(split3.equals("")){ 
       if(split1.equals(Password)){ 
        System.out.println("Access Granted"); 
        } 
       } 
      } 
     } 
    } 
} 

我不能「設置」密碼爲123或ABC。我想知道我該如何做這項工作。

編輯: @dfeuerit確實與密碼做密碼應用程序,我即將做密碼應用程序。

我希望用戶能夠通過鍵入到控制檯來設置密碼「新密碼:123」當他們在密碼類型,然後「123」它說:「准許訪問」

+0

什麼是輸入你給 – stinepike

+0

你可以嘗試解釋你的要求更清楚? – dfeuer

回答

1

你的問題可能因爲你並不總是有3個參數。

New Password: mypass 

應該工作得很好。你可能想接下來的事情就是進入

mypass 

,然後你的程序應該說Access Granted但是這不會起作用,因爲mypass只有一個字,當你通過input.split(" ")分裂的(這在每次將您的輸入空格字符),你會得到一個ArrayIndexOutOfBoundsException。試着通過插入類似if (split.length >= 3)來解決這個問題。

0

你這裏的代碼的問題是:

String[] split = input.split(" "); 
String split1 = split[0]; 
String split2 = split[1]; 
String split3 = split[2]; 

拆分輸入不一定會在3個部分。對於你想要的,第二次你輸入密碼來獲得訪問權限,它只會在一個部分。因此(這是非常硬編碼的代碼),您可以測試以查看是否有三個部分來設置字符串。否則,檢查是否只有一個部分(他們正在輸入密碼進行訪問)。確保您事先初始化字符串,以便它們始終具有價值。上面的代碼改成這樣:

String split1 = "", split2 = "", split3 = ""; 
if (split.length == 3) { 
    split1 = split[0]; 
    split2 = split[1]; 
    split3 = split[2]; 
} else if (split.length == 1) { 
    split1 = split[0]; 
} 

樣品試用:

New Password: 123 
Password set to 123 
123 
Access Granted 

一個公平的警告,這個代碼是非常具體的,只會在這種情況下,他們進入工作完全如您所料(完美的標點符號和大寫字母等)。

0

我的代碼可以實現您的要求。

package com.test; 

import java.util.Scanner; 

public class InputPassword { 
private static String password = ""; 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    while (true) { 
     Scanner scanner = new Scanner(System.in); 
     String input = scanner.nextLine(); 
     String[] split = input.split(" "); 
     if (split.length == 3) { 
      if ("New".equals(split[0]) && "Password:".equals(split[1])) { 
       password = split[2]; 
       System.out.println("Password set to " + password); 
      } 
     } else if (split.length == 1) { 
      if ("quit".equals(split[0])) { 
       System.exit(0); 
      } else { 
       if (password.equals(split[0])) { 
        System.out.println("Access Granted"); 
       } 
      } 
     } 
    } 
} 

}

相關問題