今晩は!またまたこの掲示板にきました。よろしくお願いします。
文字列かブランクを取り出すコードを書きましたが、
--------
char ch_check = str.charAt(i+1) ;
if(ch_check ==" ") {
---------
のところでString型とchar型の混合は受け入れられませんのようなエラーが出ました。
if(ch_check ==" "をboolean型でうけるのも拒否されました。
どこをどのようにしてやればよいでしょうか。
JAVA初心者です、特に文字列の取り扱いは評判通りわかり難くくないています。
よろしくお願いします。
----------
public class Mojiretu_Blank {
public static void main(String[] args) {
String str = "This is a pen.";
int i = 1 ;
int blank_count = 0 ;
while( i < (str.length()+1) ) {
char ch_check = str.charAt(i+1) ;
if(ch_check ==" ") {
blank_count ++ ;
System.out.println(ch_check);
}
else{}
System.out.print("ブランクの数は" + blank_count + "個です。");
}
}
}
No.5ベストアンサー
- 回答日時:
開発環境が一緒ならば、おそらく自宅と会社のコードが違うのだと思います。
これまでの他の方々の回答でStringとCharの問題は間違いなく解決していると思いますので、質問にあったコードで気になった点を挙げます。
* 質問にあるコードでは無限ループになってしまいます。while の条件判断で使われるiがカウントアップされていません。
* マジックナンバーが多数あり、それらはその場しのぎで付けられています。またほとんどを取り除けます。
以下に直したコードを挙げます。
プログラムは書いて直して何ぼです。また、人の書いたプログラムを読むのも大切です。
Javaの勉強頑張って下さい。
public static void main(String[] args) {
String str = "This is a pen.";
int i = 0 ;
int blank_count = 0 ;
while(i < str.length()) {
char ch_check = str.charAt(i++);
if(ch_check == ' ') {
blank_count++ ;
System.out.println(ch_check);
}
else{}
}
System.out.print("ブランクの数は" + blank_count + "個です。");
}
No.4
- 回答日時:
No3です。
>会社のPCでは相変わらず、エラー表示になります。
家と会社で書いたコードは全く同じですか?
また、エラーは以前のものと同じですか?
全く同じプログラムを書いて、エラーが出たり出なかったり、というのは本来ないはずです。
※絶対ないわけではないですが、原因はJavaVMのバージョンや外部ファイルによるもので、
今回のコードを見てる限り、そのような感じはなさそうです。
>他にString型からChar型への変換方法はないのでしょうか。
StringクラスにはtoCharArray()メソッドがあり、char型の配列に変換することができます。
char型の配列にして、lengthを使うと配列長、つまりもとの文字数が確認できるので、
これで元の文字が何文字だったかを確認できます。
No.3
- 回答日時:
>シングルクオォトでも「文字定数が無効です」とエラー表示になります。
シングルクォート内に2文字以上入っていないですか?
Javaではシングルクォートで囲んだchar型文字(文字リテラル)は
1文字でないといけない決まりがあるようです。
'ab' //こういうのはダメ
'a' //1文字で指定する必要あり
※エスケープシーケンスなど例外もあります。
2文字以上指定していると、コメントにあったようなエラーが出るようです。
あと、おまけ。
質問にあったコードの場合、変数iがいつまでも1のままなので、
whileで無限ループになります。
forを使った方が書きやすいと思いますよ。
neko_nokoさん、有難う御座いました。
しかし、家のPC(Eclipse)では何とか動きましたが、会社のPCでは相変わらず、エラー表示になります。
これはどういう意味でしょうか、それほど微妙な使用方法(書き方)でしょうか。
他にString型からChar型への変換方法はないのでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
コンパイル時にエラーが出てし...
-
タグが閉じてないというエラー...
-
eclipseでのsvn認証エラー回避方法
-
構文エラーのやり直しについて
-
tomcat起動時エラー
-
致命的: StandardServer.await:...
-
エラー:org.springframeworkが...
-
Javaのエラーについてです
-
java eclipse キーボード入力
-
JAVAでアルファベットを数...
-
eclipseでのライブラリの追加に...
-
Javaのエラーについて
-
JavaのUDP通信を使用した簡易チ...
-
JSPのIF文を教えて下さい
-
Eclipseの環境について
-
JSP内でString型からint型に変...
-
JSPの表示時エラー
-
メモリリーク(?)時にSQLExce...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
tomcat起動時エラー
-
エラー:org.springframeworkが...
-
Javaのエラーについてです
-
eclipseをバージョンアップした...
-
eclipseでのsvn認証エラー回避方法
-
タグが閉じてないというエラー...
-
Eclipseで次のエラー箇所にジャ...
-
JBossについて
-
構文エラーのやり直しについて
-
Eclipseの環境について
-
JSP NullPointerException
-
javaw.exeプロセスが正常起動し...
-
JSP内でString型からint型に変...
-
マイクラでBuildcraftを入れる...
-
Win32コンソールアプリでnamesp...
-
JSPのコンパイル?
-
致命的: StandardServer.await:...
-
S2daoのSqlファイルでのDBア...
おすすめ情報