将字符值增加 1
我有一个应用程序,其中包含一个名为“转发”的按钮。我想要的只是当我在中键入“a”并单击按钮时,单词“b”要键入,“c”如果再次按下等等。我试过:EditText
EditText
EditText
value = edt.getText();
edt.setText(value + 1);
但这当然会打印初始字符串,后跟数字“1”。有什么想法吗?多谢
我有一个应用程序,其中包含一个名为“转发”的按钮。我想要的只是当我在中键入“a”并单击按钮时,单词“b”要键入,“c”如果再次按下等等。我试过:EditText
EditText
EditText
value = edt.getText();
edt.setText(value + 1);
但这当然会打印初始字符串,后跟数字“1”。有什么想法吗?多谢
经过测试和工作
所有字母都可以由其 ASCII 值表示。
如果将字母转换为 ,则添加 1,然后转换回 a,则字母将增加 1 ASCII 值(下一个字母)。int
char
例如:
'a'
是97
'b'
98
因此,如果输入是,并且您将其转换为 ,您将获得 .然后添加 1 并 get ,然后最后将其再次转换回 a 并得到 。'a'
int
97
98
char
'b'
下面是一个转换示例:
System.out.println( (int)('a') ); // 97
System.out.println( (int)('b') ); // 98
System.out.println( (char)(97) ); // a
System.out.println( (char)(98) ); // b
因此,您的最终代码可能是这样的:
// get first char in the input string
char value = et.getText().toString().charAt(0);
int nextValue = (int)value + 1; // find the int value plus 1
char c = (char)nextValue; // convert that to back to a char
et.setText( String.valueOf(c) ); // print the char as a string
当然,只有当只有一个字符作为输入时,这才能正常工作。
更简单的方法是:
char value = edt.getText().toString().charAt(0);
edt.setText(Character.toString ((char) value+1));
此处,将字符的十进制等效项相加,并将其递增 1。这是一个小图表:value + 1
“z”之后会发生什么?...它不会崩溃..有关完整图表,请参阅此处。