「はたらけど はたらけど猶わが生活楽にならざり ぢっと手を見る」、石川啄木の有名な歌ですね、啄木は浪費家だったそうですが、浪費しているわけでもないのに、私にはお金が無い、それは給料が安いから~、どうもボクです。
お金持ちになれる日はいつ来るんでしょうかね(哀)。
というわけで、今回もJavaのお話です。
ご存知、AIZU ONLINE JUDGEで。
レッツ~トライ。
文字列を文字にしてからの数値計算
まぁ、使い道がまったく思いつかないですが、やってみますか。
EclipseでJavaプロジェクトを適当に作りまして、クラスなんかも適当に作成。
で、ソースコードはこんな感じで。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class CharNumberSum { public static void main(String[] args) throws IOException { // 標準入力用のオブジェクトを用意(コンソールの入力を受け取る用) BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String inputStr = null; // 入力値の文字列を受け取る用の変数 char[] charNumber = null; // 入力値の文字列を受ける用の文字配列 Map<Integer, Integer> strNumberArr = new HashMap<>(); // 文字配列の合計値を保持用のマップ int index = 0; // マップのkey用 // 無限ループ while (true) { inputStr = input.readLine(); // 入力値を文字列として受け取る // 入力された文字が、"0"の場合 if ("0".equals(inputStr)) { // "0"が入力されるまでに入力された文字列の数値としての合計 for (Map.Entry<Integer, Integer> entry : strNumberArr.entrySet()) { System.out.println(entry.getValue()); } break; // while文を抜ける。無限ループからの脱出 } else { // 入力された文字列を文字配列に charNumber = inputStr.toCharArray(); // 文字数だけループ for (int i = 0, sum = 0; i < charNumber.length; i++) { // 文字を数値として合計する sum += Character.getNumericValue(charNumber[i]); // ループの最後に、マップに保存 if (i == charNumber.length - 1) { strNumberArr.put(index, sum); index++; // マップのkeyをインクリメンタルジャーニー(すみません...ただ、+1加算してるだけです) } } } } } }
んで、実行してみますか。
適当な数字を入力して、終了するときは、0を入力で。
まぁ、なんていうか、実用性ゼロですな...
一応、OKということらしいっす...
今日も、まったく成長していないのであった...
今回はこのへんで。