入力 あいうえお かきくけこ さしすせそ かきくけこ あいうえお あいうえお
出力 3 2 1
#やりたいこと
入力された文字が何回カウントされるか調べたいです。
例)「あいうえお」が3回だから「3」と出力される。
次に「かきくけこ」が2回だから「2」と出力される。
次に「さしすせそ」が1回だから「1」と出力される。
java
1public class Main { 2 public static void main(String[] args){ 3 int count = 0; 4 for(int i = 0; i < 6; i++){ 5 String input = new java.util.Scanner(System.in).nextLine(); //「あいうえお」等の入力 6 if(前と同じ文字列だったら){ 7 count++; 8 }else{ 9 count = 1; 10 } //こんな感じのコードになるのかな?と予想していますが… 11 } 12}
入力された回数分、配列に格納し、変数[i]などとして前の文字列と比べる?
と思いましたが、入力ごとに配列にするやり方が分かりません。
入力の配列なら
java
1String a = input.split("");
だったら分かるのですが、これなら「あいうえお」なら「あいうえお」を分割して配列になると思います。
よろしくお願いします。
まずは思ったようにやってみるところからでは。
ロジック整理は必要ですが、書いてみないことには考えたロジックの問題点にも気付けません
まずはその入力するコードを書こう。
> 入力された回数分、配列に格納し、変数[i]などとして前の文字列と比べる?
> その考え方、あっていますでしょうか?
あっているかどうか以前に、書いてあることがあいまいすぎてコードにすることが出来ません。
よって「どういう書き方すれば良いでしょうか」という質問には回答が存在しません。
Java であれば、配列よりも Dictionary<String, Integer> の方が良いと思います。
もし Dictionary 何それおいしいのという感じなのであれば、まずそれを調べて使えるようになってから質問を編集してください。
> 入力された回数分、配列に格納し、変数[i]などとして前の文字列と比べる?
> その考え方、あっていますでしょうか?
はい。配列int a[] = new int[N];
確かにZuishinさんの仰るように Dictionary系のものを使った方がいいかも。
keyを"あいうえお"とかでvalueを「出現回数」とするとか。
一応、C言語みたいにゴリゴリ書くことも出来ますが、C#なりJavaなりの言語だと連想配列が用意されているのでそれを使った方が早い気がします。
それと、プログラミングに「絶対的な正解」は存在しません。
もし「この答え以外は認めない」っていう先生が居たらその先生はプログラミングできない人です。
自由作文を生徒全員に書かせて一言一句違えずに書いてきたら合格、それ以外は不合格とするような無茶ぶりレベルですから。
プログラミングって結局、「ロジックを考え、ロジックを修正して論理的に(コンピュータに)命令する事」です。なのでよっぽど論理違反しているとか、結果自体が違うとか、満たしていない要求があるとかでない限り、方法はいくらでもあります。
だからこの質問はナンセンスです。
> これなら「あいうえお」なら「あいうえお」を分割して配列になると思います。
なんねーよ!! (思わず突っ込んでしまった…)
つか、エラーになるわ。
とりあえず、軽いサンプルでもいいので試してみては?
少なくとも現状で出されている内容を見るに、この問題を解決するレベルにはありません。
軽く考えても、
■ 配列と変数の違いさえ分かっていない事
■ 配列とは何かすらわかっていないこと
■ オブジェクトの使い方がおかしい事
■ メモリをまったく意識していない事
は明らかに目立つレベルで理解してない気がします。
回答1件
あなたの回答
tips
プレビュー