Re: [問題] 輸入流辨別過濾
※ 引述《xezct1213 (xezct)》之銘言:
: 大家好,新手發問,請前輩給我意見QQ。
: 問題如題
: 輸入流會不斷丟值
: 例如:556 88 98 98 555 64 87 84
: 其中555是第一個辨識ID,556是第二個辨識ID
: 偵測到556這個辨識ID,把接下來的值存入對應陣列
: 偵測到555這個辨識ID,把接下來的值存入對應陣列
: 可以麻煩前輩給我關鍵字搜尋相關應用方法嗎?
: 謝謝。
http://pastebin.com/QVb2tM3Z
從程式碼看起來 主要的code就分成五個if (IdCheng = {0,1,2,3,4})
可以發現裡面都有做一樣的事情 所以可以抽出來減少code的長度
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
int ConvertMsg = Integer.parseInt(readMessage);
這三行可以從if裡面抽出來 code瞬間少了3*4 = 12行
變成這樣 http://pastebin.com/tcvKLFYi
再來每個if裡面的判斷 皆是在判斷ConvertMsg的值
例如說
if (ConvertMsg == 254) {
IdCheng = 2;
}else if (ConvertMsg == 253) {
IdCheng = 3;
}else if (ConvertMsg == 252) {
IdCheng = 4;
}else {
String aaa = readMessage;
id1 = (TextView) findViewById(R.id.view_id1);
id1.setText(aaa);
}
這邊有兩種情況 第一種是ConvertMsg的值只有252,253,254,255四種情形
這種情形就很好解決 (第二種情況就是不只這些值 再做一些處理即可)
可以宣告一個二維陣列
int map[5][4] = {
{1,2,3,4},
{1,2,3,4},
{1,2,3,4},
{1,2,3,4},
{1,2,3,4}
};
或是可改成用迴圈來賦值
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
map[i][j] = j+1;
}
}
這樣你的code就可以很方便的改寫為
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
int ConvertMsg = Integer.parseInt(readMessage);
int old_IdCheng = IdCheng;
IdCheng = map[IdCheng][ConvertMsg-252];
if(old_IdCheng == IdCheng){
String aaa = readMessage;
id1 = (TextView) findViewById(R.id.view_id1);
id1.setText(aaa);
}
以上是比較通用的方法
但是如果妳資料格式真的長這樣的話 連陣列都不需要
因為觀察後可得ConvertMsg + IdCheng = 256
直接把IdCheng = map[IdCheng][ConvertMsg-252] 那行改成
IdCheng = 256-ConvertMsg;
最後的code http://pastebin.com/EgtyGjWY
如果我沒想錯的話 這段code跟你推文中附上的code應該會跑出一樣的結果
(不過我沒測試過不敢保證)
希望沒有理解錯誤
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.137.127
推
02/24 23:35, , 1F
02/24 23:35, 1F
推
02/25 18:54, , 2F
02/25 18:54, 2F
→
02/25 18:55, , 3F
02/25 18:55, 3F
→
02/25 18:56, , 4F
02/25 18:56, 4F
→
02/25 18:56, , 5F
02/25 18:56, 5F
→
02/25 18:57, , 6F
02/25 18:57, 6F
→
02/25 18:59, , 7F
02/25 18:59, 7F
→
02/25 19:00, , 8F
02/25 19:00, 8F
→
02/25 19:00, , 9F
02/25 19:00, 9F
→
02/25 19:01, , 10F
02/25 19:01, 10F
→
02/25 19:01, , 11F
02/25 19:01, 11F
→
02/25 19:02, , 12F
02/25 19:02, 12F
→
02/25 19:02, , 13F
02/25 19:02, 13F
→
02/25 19:03, , 14F
02/25 19:03, 14F
→
02/25 19:03, , 15F
02/25 19:03, 15F
→
02/25 19:04, , 16F
02/25 19:04, 16F
→
02/25 19:04, , 17F
02/25 19:04, 17F
推
02/25 21:49, , 18F
02/25 21:49, 18F
→
02/25 21:50, , 19F
02/25 21:50, 19F
→
02/25 21:50, , 20F
02/25 21:50, 20F
→
02/25 21:54, , 21F
02/25 21:54, 21F
→
02/25 21:55, , 22F
02/25 21:55, 22F
→
02/25 21:56, , 23F
02/25 21:56, 23F
推
02/25 22:25, , 24F
02/25 22:25, 24F
→
02/25 22:25, , 25F
02/25 22:25, 25F
→
02/25 22:25, , 26F
02/25 22:25, 26F
→
02/25 22:25, , 27F
02/25 22:25, 27F
→
02/25 22:26, , 28F
02/25 22:26, 28F
→
02/25 22:26, , 29F
02/25 22:26, 29F
→
02/25 22:26, , 30F
02/25 22:26, 30F
→
02/25 22:26, , 31F
02/25 22:26, 31F
→
02/25 22:26, , 32F
02/25 22:26, 32F
→
02/25 22:26, , 33F
02/25 22:26, 33F
→
02/25 22:27, , 34F
02/25 22:27, 34F
→
02/25 22:27, , 35F
02/25 22:27, 35F
→
02/25 22:28, , 36F
02/25 22:28, 36F
→
02/25 22:28, , 37F
02/25 22:28, 37F
→
02/25 22:28, , 38F
02/25 22:28, 38F
→
02/25 22:28, , 39F
02/25 22:28, 39F
推
02/27 07:12, , 40F
02/27 07:12, 40F
→
02/27 07:13, , 41F
02/27 07:13, 41F
→
02/27 07:13, , 42F
02/27 07:13, 42F
→
02/27 07:14, , 43F
02/27 07:14, 43F
→
02/27 07:20, , 44F
02/27 07:20, 44F
討論串 (同標題文章)
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章