增加一个char值

我有一个名为“forward”的EditText和一个button的应用程序。 所有我想要的只是当我在EditText键入“a”并单击button时,在EditText键入单词“b”,如果再次按下,则键入“c”等等。 我努力了:

 value = edt.getText(); edt.setText(value + 1); 

但是,这当然会打印最初的string,后面跟着数字“1”。 有任何想法吗? 非常感谢

Solutions Collecting From Web of "增加一个char值"

testing和工作

所有字母都可以用ASCII值表示。

如果将这些字母转换为一个int ,则加1,然后将其转换回char ,该字母将增加1个ASCII值(下一个字母)。

例如:

'a'97
'b'98

所以如果input是'a'而你把它转换成int ,那么你会得到97 。 然后加1并得到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 

当然,如果只有一个字符作为input,这将只能正常工作。

更简单的方法是:

 char value = edt.getText().toString().charAt(0); edt.setText(Character.toString ((char) value+1)); 

这里的value + 1加上了字符的十进制等值,并将其加1 ..下面是一个小图表:

在这里输入图像说明在这里输入图像说明

“z”后会发生什么? …它不会崩溃.. 看到这里的完整图表。 。

试试这个

 String convertString = getIncrementStr("abc"); public static String getIncrementStr(String str){ StringBuilder sb = new StringBuilder(); for(char c:str.toCharArray()){ sb.append(++c); } return sb.toString(); } 
 String value = edt.getText(); edt.setText(value + 1); 

如果上面是你的代码,那么你正在做的是将1连接到valuestring的结尾。 因此,button点击会将显示的文本从“你的文本”改变为“你的文本1”。 这个过程将继续在下一个button点击显示“你的text11”。 这个问题真的是一个types错误。

您需要将文本值(字符)转换为ascii值,然后增加它,而不仅仅是文本。

 value = edt.getText().toString(); int ascii = (int)value; edt.setText(Character.toString ((char) ascii+1)); 

尝试这个:

 edt.setText(Character.toString((char)(edt.getText().charAt(0) + 1)));