プロが教えるわが家の防犯対策術!

文字を入力し入力されたそれぞれの文字の個数を出力したいのですが
良い処理方法が思いつきません。。。
どのようにコーディングしていけばよいでしょうか?

(例)abcb → 出力:aが1個・bが2個・cが1個

どなたかご協力お願いします!

A 回答 (4件)

>何かもっと単純なメソッドや条件分岐からの処理はありませんか?


ありません。

いつもいつも、そんな都合のよいものはありません。
ないから自分で作るのです。

また、もしそんなメソッドがあったとして、戻り値はどうなるでしょうか?
文字列配列や数値配列では返せないので、やはりMapのようなものになります。
つまり、どうしても必要なものですので、これを機会に覚えてしまって下さい。

>コレクション・フレームワークなどの理解にはまだまだ至っていません。。。

「コレクションフレームワーク」という名前にビビッてませんか?
そんな名前は無視して、まずはドキュメントを読んで下さい。
それほど難しいものではありません。

一応、簡単に使用例を書いておきますから、詳細は自分で調べてください。


HashMap map = new HashMap();
map.put("key-a", "value-a");
map.put("key-b", "value-b");
map.put("key-c", "value-c");
System.out.println(map.get("key-a"));
System.out.println(map.get("key-c"));

<実行結果>
value-a
value-c
    • good
    • 0
この回答へのお礼

ありがとうございます。
色々なサイトから調べてみているところです。
ご協力に感謝します。

お礼日時:2006/10/26 09:54

>文字を1文字ずつ読むとは配列として取得するということですか?


Stringに文字列を格納しているのなら
StringクラスのcharAt(int index)メソッド

StringクラスのJavaDocを1度熟読することをお奨めします。
    • good
    • 0
この回答へのお礼

StringクラスのJavaDocですね?
探してみます。
ありがとうございました。

お礼日時:2006/10/26 09:55

配列というものはご存じでしょうか?


普通の配列は添え字に数字を用いますが、添え字に文字列を使う配列があります。
「連想配列」と呼ばれるものです。
連想配列は言語によってはサポートされているものもありますが、JAVAでは言語仕様としてはサポートされていません。
言語仕様ではありませんが、代りに連想配列の機能を標準APIで提供しています。
java.util.Mapというインターフェースです。
これを使えば、文字列をキーとして任意のオブジェクトを取得・設定が行えます。

今回の場合、文字を「キー」に、カウントを「キーに割り当てられた値」とすれば簡単にカウントできます。

なお、Mapインターフェースの実装にはjava.util.HashMap等がありますので、実際にはこれを使うこととなるでしょう。

具体的な使い方はドキュメントを参照してください。

この回答への補足

詳しい解説ありがとうございます。
ですが、私があまりにも初心者なものですから
コレクション・フレームワークなどの理解には
まだまだ至っていません。。。
何かもっと単純なメソッドや条件分岐からの処理はありませんか?

補足日時:2006/10/25 16:36
    • good
    • 0

こんなところでしょうか…



文字格納構造体
 文字
 数

LOOP開始

  条件判定1:文字を1文字づつ読む 最後まで読んだらLOOP抜け

    条件判定2:格納済みの文字と1文字読んだ文字との比較
      1文字読んだ文字を文字格納構造体.文字に格納
      1文字読んだ文字で文字列を検索
      検索結果を文字格納構造体.数に格納
    条件判定2終了
  条件判定1終了
LOOP終了

この回答への補足

質問よろしいですか?
文字を1文字ずつ読むとは配列として取得するということですか?

補足日時:2006/10/25 15:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!