2017-03-09 8 views
-1

私は学校でC#を使い始めています(これは宿題ではありません)。このサイトは初めてです。私は、ユーザー入力(またはユーザー名とパスワード)を受け取り、現在は1行しかない配列とユーザー入力を比較する独自のプログラムを作成しようとしています。これは私のコードの一部である...ユーザー入力を配列と比較する

int count = 0; 
     char delimiter = '#'; 
     string fileInput = ""; 
     string[] inputArray; 

     fileInput = inFile.ReadLine(); 
     while(fileInput != null) 
     { 
      inputArray = fileInput.Split(delimiter); 
      username[count] = inputArray[0]; 
      password[count] = inputArray[1]; 

/////////////

static void compare(string[] username, string[] password, int count, string userInputUsername, string userInputPassword) 
{ 
    userInputUsername = userInputUsername.ToLower(); 

    for (int x = 0; x < count; x++) 
    { 
     if (userInputUsername == username[x] && userInputPassword == password[x]) 
     { 
      loginSuccesful();     
     } 
     else if (userInputUsername != username[x] || userInputPassword != password[x]) 
     { 
      loginFailed(); // Seems to give the login failed message multiple times based on the # of lines in an array in the login.txt document. 
     } 
    } 
} 

私の配列は、TJ#1(TJがあること、このようになりますユーザー名と1がパスワードです)。パスワードとユーザー名を正しく表示しますが、userInputUsernameを取得して配列と比較すると常にloginFailed()メソッドが返されます。

for (int x = 0; x < count; x++){ 
    if (userInputUsername.equals(username[x]) && userInputPassword.equals(password[x])) 
    { 
     loginSuccesful();     
    } 
    else if (!userInputUsername.equals(username[x]) || 
      !userInputPassword.equals(password[x])) 
    { 
     loginFailed(); // Seems to give the login failed message multiple times based on the # of lines in an array in the login.txt document. 
    } 
} 
+0

内部には何か* username [x] *?それがuserNameの場合、* username [x] .ToLower(); * – NNR

+0

のように小文字に変換します。username [x]はTJ#1(username#password)の配列です 私はuserInputUsername = userInputUsername.ToLower );ログイン時にユーザー名のために宣伝されてしまうことがあります。 –

+0

次に、その配列を分割してから* userInputUsernameと比較してください。* – NNR

答えて

-1

として、私はあなたが比較のために、「等しい」を使用すべきだと思うuserInputUsernameとアレイの両方を持っています私は1つの方法で2つのものを返そうとしている私が原因で発生しています。

+0

userInputUsernameとuserInputPasswordは文字列として定義されていますので、正しく処理して解析しないとうまくいかないでしょうか? –

+0

はい、文字列の型は "equals"を使用して – AMars

+0

@ T.Jacksonをこの「アドバイス」を無視してください:AMarsがJavaとしてタグ/コードを誤読しているように見えます(理由はわかりません。 –

0

私はこれをいじることができませんでしたが、私は問題はそれだと思う:私はこのように、文字列

関連する問題