0

NumberFormatExceptionを取得する問題の最後で立ち往生しています。

Wsupなどの文字列を取得し、それをASCII値に変換して結果を '87115117112' にしたいと考えています。

数の文字列をいくつかの異なる方法で正常に作成しましたが、それを実行しようとするとparseInt(string)例外が発生します。隠された空白を探すために文字列を文字の配列として出力しようとしましたが、String.trim()うまくいきませんでした。なぜそれが有効な整数として認識されないのか非常に混乱しています。

public static int toAscii(String s){
    StringBuilder sb = new StringBuilder();
    String ascString = null;
    long asciiInt;
            for (int i = 0; i < s.length(); i++){
                sb.append((int)s.charAt(i));
                char c = s.charAt(i);
            }
            ascString = sb.toString();
            asciiInt = Integer.parseInt(ascString); // Exception here
            return 0;// asciiInt;    0 in place just to run
}

助けてくれてありがとう。

4

2 に答える 2

3

yor asciiIntは long 型なのでこのようにします

  asciiInt =  Long.parseLong(ascString);

ここにあなたの完全な機能があります

public static long toAscii(String s){
        StringBuilder sb = new StringBuilder();
        String ascString = null;
        long asciiInt;
                for (int i = 0; i < s.length(); i++){
                    sb.append((int)s.charAt(i));
                    char c = s.charAt(i);
                }
                ascString = sb.toString();
                asciiInt = Long.parseLong(ascString);
                return asciiInt;
    }
于 2013-04-15T06:02:40.577 に答える
0

toAscii() を少しだけ実装した整数ではない限り、返す必要があります

public static long toAscii(String s){
        StringBuilder sb = new StringBuilder();
        long asciiInt;
        for (int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            asciiInt = (int)c; 
            System.out.println(c +"="+asciiInt);
            sb.append(asciiInt);
        }
        return Long.parseLong(sb.toString());
}
于 2013-04-15T06:06:42.323 に答える