2015-12-20 100 views
-2

我目前正在開發一個Android應用程序,並且卡住了。比較兩個字符串(從陣列1隨機1從輸入時,應用程序說,他們是不相等的下面是我的一些代碼:比較字符串android應用程序

Random random = new Random(); 
int randInt = random.nextInt(words.length); 
assignement.setText(words[randInt]); 

public void check(){ 

    answer=inputFrame.getText().toString(); 

    if(inputFrame.getText().toString()!= null && answer.equals(assignement)){ 
     assignement.setText(words[randint]); 
     Toast.makeText(getApplicationContext(),"correct",Toast.LENGTH_SHORT).show(); 

    }else if(inputFrame.getText().toString()==null){ 
     Toast.makeText(getApplicationContext(),"enter text first",Toast.LENGTH_SHORT).show(); 
    }else if(!answer.equals(assignement)){ 
     Toast.makeText(getApplicationContext(),"wrong",Toast.LENGTH_SHORT).show(); 

    } 

我希望有人能幫助我

+0

什麼問題?應用程序是否表示即使它們相等也不相等? – MC10

+0

也許套管是不同的。嘗試使用'equalsIgnoreCase()'。同時修剪輸入字符串,以切斷最終的前導/尾隨空格。 –

+0

你可以把輸入?數組中有哪些單詞? –

回答

0

取而代之的是比較

answer.equals(assignement) 

,你必須使用這個

answer.equals(assignement.getText().toString()) 

因爲answerString變量,assignement是problably EditText

此代碼應該正常工作。

public void check() { 
    String answer = inputFrame.getText().toString(); 
    String nameFromArray = assignement.getText().toString(); 

    if (answer.isEmpty()) { // because toString never returns null 
     Toast.makeText(getApplicationContext(), "enter text first", Toast.LENGTH_SHORT).show(); 
    } else if (answer.equals(nameFromArray)) { 
     Toast.makeText(getApplicationContext(), "correct", Toast.LENGTH_SHORT).show(); 
    } else { 
     Toast.makeText(getApplicationContext(), "wrong", Toast.LENGTH_SHORT).show(); 
    } 
} 
0

既然你使用

assignement.setText(words[randInt]); 

我以爲這是一個文本框或類,所以你必須如下更改if

if(inputFrame.getText().toString()!= null && answer.equals(assignement.getText())){ 
     assignement.setText(words[randint]); 
     Toast.makeText(getApplicationContext(),"correct",Toast.LENGTH_SHORT).show(); 

    } 

請注意我添加了.getText()方法。

此外,我建議您使用equalsIgnoreCase,如果情況敏感性對您不重要。

+0

謝謝,有點工作! –

+0

感謝之後更改接受的答案,甚至答案的內容都是一樣的。 –