web-dev-qa-db-ja.com

char値を1増やします

EditTextと「進む」という名前のボタンを備えたアプリがあります。 EditTextに「a」と入力してボタンをクリックすると、EditTextに「b」という単語が入力されます。もう一度押すと「c」というようになります。 。私が試してみました:

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

ただし、もちろん、最初の文字列とそれに続く数値「1」を出力します。何か案は?どうもありがとう

19

テスト済みで動作します

すべての文字は [〜#〜] ascii [〜#〜] 値で表すことができます。

文字をintにキャストし、1を追加してからcharにキャストすると、文字は1 ASCII value(次の文字)。

例えば:

'a'97です
'b'98です

したがって、入力が'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

もちろん、これは入力として単一の文字がある場合にのみ正しく機能します。

23

より簡単な方法は次のとおりです。

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

ここでvalue + 1は、文字に相当する10進数を追加し、1ずつ増やします。これが小さなチャートです。

enter image description hereenter image description here

「z」の後にはどうなりますか? ...それはクラッシュしません.. 完全なチャートについてはここを参照してください。

9
amalBit

これをお試しください

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();
}
6
Aravin
String value = edt.getText();
edt.setText(value + 1);

上記があなたのコードである場合、あなたがしていることは、value文字列の最後に1を連結することです。したがって、ボタンをクリックすると、表示されるテキストが「your text」から「your text1」に変わります。このプロセスは、次のボタンをクリックして続行され、「your text11」が表示されます。問題は本当に型エラーです。

3
Philip Liberato

これを試して:

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

テキスト値(文字)をASCII値に変換し、テキストだけでなくそれを増やす必要があります。

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