参考書に出ていた問題について質問です。
穴埋め形式になっていて、途中までは埋まったのですが、最後の部分がわかりません。
StringBuffer bf = new StringBuffer();
boolean let;
for (int i = 0 ; i < (bf.length()); i ++){
let = true;
for (int j = 0; j <(nch.length()); j ++){
if (inputstr.charAt(i) == nch[j])
let = false;}
if (let) ×××}
return ×××;}//bfをstring型に変えて戻り値}
の×××の部分です。
引数として与えた文字列から数字以外の文字を抜き出すプログラムなのですが、どこで何を行っているのかがよくわからなくなってきています。
回答お願いします。
No.2ベストアンサー
- 回答日時:
外側のfor文で、引数で受け取ったStringを1文字ずつループし、
内側のfor文で数字比較用のchar配列を1要素ずつループしているようですね。
ただ、外側のfor文にbf.length()とありますが、
bfは直前でnewしているため、lengthは「0」になると思います。
そのため、for文の中に入ることはありません。
ここがinputstr.length()であれば、大丈夫だと思うのですが…。
上記を前提にすると、
if(let)×××は
bf.append(inputstr.substring(i));
でいいのではないでしょうか。
戻り値がStringなのでreturn ×××;は
bf.toString()
でStringBufferをStringに変換します。
時間が無くて詳しいことが書けませんでした。
申し訳ありません。
あとでも良ければ補足します。
回答ありがとうございました。
bf.lengthについては先ほど見直していて気づきました。ご指摘ありがとうございます。
もしお時間がありましたら、詳しい説明などをしていただけるとありがたいです。
No.1
- 回答日時:
これは抜粋して掲載してませんか?
プログラムはせめてメソッド全部ぐらいが見えてないと、正確な答えを出せません。(たとえばinputstrやnchが何なのかは想像するしかありません)
ということで想像でしかお答えできませんが・・・
if(let)はそのinputstr.charAt(i)にある文字が数字のときの処理です。nchはなんとなく数字が入っているcharの配列だと想像できますが、inputstrはなんなのか分からないので、xxxに何を入れたら良いのか分かりません。
(inputstrでなくてbfをそのまま使っているなら、ここにはbfから数字を抜き取る処理が入るでしょう。)
return xxxはコメントの通りならbf.toString()です。
これはマニュアルを読めば分かることなので、sunのサイトからマニュアルをダウンロードして、調べる癖をつけたほうがいいと思います。
老婆心ながらプログラムの勉強で最も効果的なのは自分でプログラムを作って、試すことです。問題を解いているだけではなかなか進歩しないでしょう。(ある程度できる人なら、マニュアルを読んだり、サンプルのプログラムを読むと、その言語のことが分かったりはしますけどね)
回答ありがとうございます。
nchは数字をchar型配列要素として定義したもの、inputstrはpublic static String lettersonly(String inputstr){ という記述が最初にあるので、実行時に引数として与えた文字列のことだと思います。
長いプログラムになっていて、どこからつながっているのかがわからなくなっていました。
中途半端な質問に答えてくださってありがとうございます。
また、アドバイスもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java
-
ファイルの読み込み、配列に格納
-
ページング
-
『args[]』とは?
-
javaで大容量テキストファイル...
-
C言語でunsigned char配列を連...
-
配列・クリア
-
CSVファイルの、列だけ取得したい
-
セッションを使ったint型の値の...
-
CSVファイルを多次元配列に格納...
-
この警告はどうすれば?
-
質問です。 配列が100以上の場...
-
Javaで文字と数字が混ざったも...
-
配列数を超えてアクセスしたと...
-
csvファイルを2次元配列に格納
-
配列を使ってカレンダーを表示...
-
いくつかのchar型の配列に入っ...
-
[Ljava.lang.Stringってなんですか
-
CSVファイルを二次元配列に格納...
-
java 乱数を並べて重複させない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
n番目に大きな値を探索する
-
この警告はどうすれば?
-
[Ljava.lang.Stringってなんですか
-
Javaで文字を漢字であるか否か...
-
配列をセッションに割り当てた後で
-
配列の中に複数存在する数がい...
-
java
-
Javaで文字と数字が混ざったも...
-
C#で動的配列Listの中身をListB...
-
配列で、値の入っている要素数...
-
『args[]』とは?
-
【C#】ハッシュテーブル(連想...
-
ページング
-
セッションを使ったint型の値の...
-
配列について
-
同じ配列またはクラスを、2回...
-
ArrayListからBean配列に値をセ...
-
Java配列の問題を教えてくださ...
-
java 大文字と小文字を入れ替える
-
同じ文字を探しカウントしたい
おすすめ情報