2009-10-08 63 views
1

我正在構建一個簡短的測驗,用戶需要輸入縮寫詞的含義。 這意味着我需要比較用戶輸入的長字符串(通常是一個句子)和首字母縮寫詞。比較AS3中的句子(字符串)

我有一種感覺,我沒有做對。對於我的測試,我複製粘貼正確的答案,以確保拼寫正確,但我始終得到的答案是不正確的反饋。

我的問題是,我比較正確嗎?

這裏是我的代碼:

var arrQuestions:Array = [["LOL","Laughing Out Loud"], ["OMG", "Oh My God"], ["BTW", "By The Way"]]; 
var i:Number=0; 

    function setup():void { 
    quiztext_txt.text = arrQuestions[i][0]; 
    trace(quiztext_txt.text); 
    trace(arrQuestions[i][1]); 
    check_btn.addEventListener(MouseEvent.CLICK, clickHandler); 


    }//End of Setup() 

    setup(); 

    function clickHandler(event:MouseEvent):void { 

    var givenString:String; 
    var inputString:String; 
    inputString = userinput_txt.text; 
    givenString = arrQuestions[i][1]; 
    if (inputString == givenString) { 
     feedback_txt.text = "Correct!"; 


    } else { 
     feedback_txt.text = "Wrong!"; 
    } 
    } 
+0

這是什麼變數?你多次使用它,但我從未看到它初始化。 – spender 2009-10-08 09:35:13

+0

嗨斯佩德,我正在編輯我的代碼,所以你可以看到我的變量。 我將在未來使用它來移動到數組中的下一個位置。 – Sarit 2009-10-08 09:44:53

回答

0

有任何空格前/後用戶輸入? i的值是否在兩者之間變化?

​​
+0

嗨Amarghosh,我沒有改變,但所有這一切都發生了,它會改變後點擊一個「下一步」按鈕。 我試過你的Else代碼,並且從我所看到的,給定的和輸入的字符串都是正確的。我怎麼知道是否有不需要的空間? – Sarit 2009-10-08 09:41:19

+1

trace(inputString.length +「,」+ givenString.length); – Amarghosh 2009-10-08 10:13:27

0

嘗試清除文本字段中的設置功能,像這樣:

function setup():void 
    { 
    userinput_txt.text = ""; 
    quiztext_txt.text = arrQuestions[i][0]; 
    trace(quiztext_txt.text); 
    trace(arrQuestions[i][1]); 
    check_btn.addEventListener(MouseEvent.CLICK, clickHandler); 


    }//End of Setup() 
0

對於任何類型的字符串匹配,我會強烈建議考慮正則表達式(正則表達式)的。在下面寫的正則表達式中,我匹配每個單詞,然後我說[ ]+這意味着「至少有一個或多個空格」,然後在表達式的末尾我使用/gi來表示該表達式不區分大小寫。在上面的代碼中,如果我輸入的短語不匹配,對此的快速解決方法是使用if(inputString.toLowerCase() == givenString.toLowerCase())這將捕獲此。這裏正則表達式的例子:

// testString could easily equal myTextField.text 
var testString:String = "lauGHing  OuT  loUD"; 

// you could store each one in an array, as you were before 
var regEx:RegExp = /laughing[ ]+out[ ]+loud/gi 

trace(regEx.test(testString)); //returns true,test() returns a Boolean 

希望這有助於。