2017-01-30 39 views
0

我能夠僅顯示字符串的最後一個字母表的代碼,而不是整個字符串的代碼。例如,如果我輸入「A」,則顯示65,但如果我輸入「AB」,則顯示66.我想同時顯示65和66如何在用戶輸入字符串時在Edittext上顯示ascii代碼

String a = tf1.getText(); 
    byte b[]=a.getBytes(); 
    char ch[]=a.toCharArray(); 
    for(int i=0;i<ch.length;i++) 
    { 
    tf2.setText(String.valueOf(b[i])); 
    } 
+0

您覆蓋您的TF2每一次,當你把下一個字符。改變這個,所以你添加下一個ASCII碼。 – IQV

+0

@IQV - 我知道它正在被覆蓋,但是我應該做些什麼改變來阻止它並一次顯示所有字符的代碼。 – Rohan

+0

@Rohan將值設置爲一個包含所有你想要的數字的字符串。 –

回答

0

代碼tf2.setText(String.valueOf(b[i]));永遠將文本設置爲單個字符值。如果你想顯示所有的字符代碼,你應該連接這些值。

1

您應該從文本框中獲取現有值,並且將新值更改爲新值並將其重新更新爲文本框。

更改tf2.setText(String.valueOf(b[i]));

tf2.setText(tf2.getText()+" "+String.valueOf(b[i]));

+0

我建議額外的空間:'tf2.setText(tf2.getText()+「」+ String.valueOf(b [i]));' – IQV

+0

@IQV謝謝,更新答案:) – Vijay

+0

@Vijay謝謝你..你救了我的一天 – Rohan

0

您需要設置文本其中有你想要的所有值的字符串。

String a = tf1.getText(); 
// take all the chars as int values and join them together with a space between. 
String ascii = s.chars().collect(Collectors.joining(" ")); 
tf2.setText(ascii); 
0
StringBuilder sb = new StringBuilder(""); 
st1=tf1.getText(); 
char arr[] = st1.toCharArray(); 
for (int i=0; i<arr.length; i++){ 
    iValue =(int)arr[i]; 
    sb.append(iValue+","); 
} 
tf2.setText(""+sb);