重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

プログラムを作ったのですが、さまざまなエラーが出てしまいます。
与えた引数を数字と文字にわけるというプログラムです。

public class Selection {
private static final char[] nch = {
'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
};//0から9までの数字をchar型配列要素として定義
public static String numbersonly(String inputstr) {
StringBuffer bfn = new StringBuffer();
for (int i = 0 ; i < inputstr.length(); i++) {
for (int j = 0;j < nch.length() ; j++) {
if(inputstr.charAt(i) == nch[j])
bfn.append(inputstr.substring(i));
//bfnにinsputstrのi番目の文字を付け足す
}
}
return; bfn.toString();
//bfnをstring型に変えて戻り値
}

//numbersonlyメソッドの場合と同様に以下も補う
public static String lettersonly(String inputstr) {
StringBuffer bfn =new StringBuffer();
boolean let;
for (int i = 0; i < inputstr.length(); i++) {
let = true;
for(int j = 0; j < nch.length(); j++) {
if(inputstr.charAt(i) == nch[j]) let =false;
}
if (let)bfn.append(inputstr.substring(i));
}
return;bfn.toString();
}
}
はじめのchar型配列要素として定義するところでシンボルを解決できません、となっているので、そのほかのnchを使う部分(lengthメソッド、戻り値)にも影響が出ているのか、jのlengthメソッドもどちらともシンボル解決できず、それぞれreturnでは戻り値がありません、となります。

A 回答 (2件)

これをコピー・ペーストしてコンパイルしてみました。


3つほどまちがいがありました。

(1)
> private static final char[] nch = {
>'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
>};//0から9までの数字をchar型配列要素として定義

のところ、要素の間に,(カンマ)が入っていない。
>'0', '1', '2', '3', '4' ,'5' ,'6' ,'7' ,'8', '9'
のようにする。

(2)2箇所あるreturnのところで、
returnと返す値の間に;(セミコロン)が入っている。
取り除けばよい。

(3)2回出てくるnch.length()のところ、
配列の長さを得るlengthはメソッドではなくフィールドである。
つまり、()を削除してnch.lengthとして使えばよい。
(これはありがちなエラー)

内容については検討していませんが、
とりあえず以上のことをすればコンパイル可能になります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
解決しました!

お礼日時:2004/12/18 00:04

>private static final char[] nch = {


>'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
>};//0から9までの数字をchar型配列要素として定義

要素が“,”で区切られていない。

>return;bfn.toString();

おそらく、

return(bfn.toString());

としたいのでは?


>nch.length()

nch.length

() いらない。
    • good
    • 0
この回答へのお礼

解決しました。ありがとうございました。

お礼日時:2004/12/18 00:04

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