解決済み

文字リテラルと文字列リテラルの違いについて

  • 暇なときにでも
  • 質問No.9610318
  • 閲覧数84
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (1/2)

文字リテラルの場合は'’でくくる。
文字列リテラルの場合は""でくくることを知りました。

しかし、文字リテラルも""でくくることが出来るのですが、
どちらも""でくくってしまえば簡単な気がします。
これらを区別する理由はあるのでしょうか?


※OKWAVEより補足:「Webシステム開発」についての質問です。

質問者が選んだベストアンサー

  • 回答No.2

ベストアンサー率 64% (653/1005)

他カテゴリのカテゴリマスター
'a'と"a"では型が違います。
そのため、String s="a";と書くことはできてもString s='a';と書くとエラーになります。逆も同様で、char c="a";は正しいコードではありません。
char型と長さ1文字のString型の間の自動変換はJavaの言語仕様にないからです。

型が違えばできることが違います。
たとえばint n="a".length();は可能ですが、int n='a'.length();はエラーになります。

System.out.println()が"a"でも'a'でも対応可能なのは、引数がString型の場合とchar型の場合の両方について定義されているからです。
お礼コメント
r201501177cr

お礼率 50% (1/2)

回答を頂きましてありがとうございました。
まだまだ勉強中のため、とても参考になりました。
勉強を始めて数週間なので、回答を頂戴したこと本当にありがたく思いました。
今後質問することも多くあると思いますのでその際にもお答え頂ければ幸いです。
投稿日時 - 2019-05-07 12:28:52

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 15% (207/1309)

質問の内容で理解がおかしいと思いました。

>文字リテラルの場合は'’でくくる。
>文字列リテラルの場合は""でくくることを知りました。

そんなこと、どこに書いてありました?

シングルクウォートで括ったものを文字リテラル、ダブルクウォートで括ったものを文字列リテラルだと書いてある気がするんですけど。

だから、シングルクウォートではなくダブルクウォートで括った時点でそれは文字リテラルではなく文字列リテラルということで、文字数が1文字の文字列リテラルと言うだけではないですかね。
補足コメント
r201501177cr

お礼率 50% (1/2)

回答ありがとうございます。
質問の意図がわかりづらい文章で申しわけありません。

以下の例のように一文字のものをシングルクウォート、ダブルクウォートでくくった場合の
2通りの方法があるのだと解釈しました。


例1:System.out.println("A");
   System.out.println('A');

例2:System.out.println("\n");
   System.out.println('\n');


例1、例2ではそれぞれどちらも同じものが表示されるにも関わらず、分ける意味はあるのでしょうか?
というのが私の疑問です。
処理の速度が変わるなどがあるのでしょうか?
よろしくお願いします。
投稿日時 - 2019-04-25 13:32:57
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ