頁:
[1]
(已解決)(android)AB GAME問題 卡在不同型態陣列如何判斷相等
本帖最後由 a7813195 於 2017-5-7 01:54 AM 編輯首先我認為我應該沒有PO錯版><(因為android是使用java語言去撰寫的 況且也沒有android的獨立版)因為是android所以先PO元件宣告
int[] answer = new int[4];
int[] temp = new int[10];
private Button btnStart, btnExit, btnCollation;
private EditText editAnswer;
private TextView textAnswer;
private ListView ListView01;
onCreate部分:btnStart = (Button)findViewById(R.id.btnStart);
btnExit = (Button)findViewById(R.id.btnExit);
btnCollation = (Button)findViewById(R.id.btnCollation);
editAnswer = (EditText)findViewById(R.id.editAnswer);
textAnswer = (TextView)findViewById(R.id.textAnswer);
ListView01 = (ListView)findViewById(R.id.ListView01);
btnStart.setOnClickListener(StartListener);
btnExit.setOnClickListener(ExitListener);
btnCollation.setOnClickListener(CollationListener);
StartListener部分://先將0~9數字依照位置丟進temp陣列
for(int i=0;i<temp.length;i++){
temp = i;
}
for(int i=0;i<temp.length;i++){
//產生0~9亂數
int select = (int)(Math.random()*10);
//隨機選出的位置不能等於i
int swaptemp = 0;
if(select != i){
swaptemp = temp;
temp = temp;
temp = swaptemp;
}
}
//洗好的前四個數字塞回我們要回傳的陣列
for(int i=0;i<answer.length;i++){
answer=temp;
}
textAnswer.setText("答案: " + answer[0] + answer[1] + answer[2] + answer[3]);
CollationListener部分:try{
int a = 0 ,b = 0;
String st1, st2;
//將輸入文字轉為字串
String ss = editAnswer.getText().toString();
//將字串分別以字元存於陣列
char c[] = ss.toCharArray();
//判斷是否重覆
if(c[0] == c[1] || c[0] == c[2] || c[0] == c[3] ||
c[1] == c[2] || c[1] == c[3] ||
c[2] == c[3]) {
Toast.makeText(abgame.this, "不可輸入重覆!!,請重新輸入",
Toast.LENGTH_SHORT).show();
editAnswer.setText("");
} //最大問題點!!!!
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
//數字對,位置也一樣,就是1A
if((answer == c) && (i == j)){
a++;
}
//數字對,位置不一樣,就是1B
else if((c == answer) && i != j){
b++;
}
}
}
st1 = "A= " + a + "B= " + b + "|" + c[0]+c[1]+c[2]+c[3];
textAnswer.setText(st1);
}
catch (Exception e){
//輸出錯誤訊息
Toast.makeText(abgame.this,"輸入格式錯誤,請重新輸入",
Toast.LENGTH_SHORT).show();
editAnswer.setText("");
}
好的 我目前最大問題點是
因為我在答案部分 我是使用整數產生亂數再存入陣列(整數陣列)
輸入部分因為是字串 而我之後一個一個輸入陣列 所以宣告字元陣列
但目前在"最大問題點"那邊是我要判斷幾A幾B的部分
但是一個是字元字串 一個是整數字串
兩邊永遠不會完全相等 所以IF那邊不會執行
我想請問各位大大 這個部份我該如何解決...
(如有違反版規請告知)
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 雖然後來問題解決,但不打算刪文 希望能夠給各位一些想法
原先問題是在卡在一個是整數陣列 一個是字元陣列
後來我想到的方法是先把整數陣列answer~answer存入一個String 的宣告名稱中
最後在將String 宣告名稱的依照下方的方式轉存入字元陣列中
最後在相互比較
我想到的方法或許有點笨
所以不打算刪文 看大家是否有更好方法 String.valueOf 可以把整數 轉字串,
Character.toString,可以把字元轉字串,
再用String class 的equals 比叫是否相等。
頁:
[1]