第3章. 文字列とモノ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
3.0 はじめに
文字列 は、あらゆるプログラミング・タスクの必然的な一部である。ユーザへのメッセージの印刷、ディスクやその他の外部メディア上のファイルの名前付け、人の名前、住所、所属などである。文字列の用途はたくさんあり、ほとんど数え切れないほどだ(実際、数字が必要な場合は、第5章で説明する)。
Cレベルかそれ以下のプログラミング言語から来た人は、String がJavaで定義された型 (クラス)であることを覚えておく必要があるだろう。つまり、文字列はオブジェクトであり、したがってメソッドを持っている。文字列は文字の配列ではないので(コンテナはあるが)、配列と考えるべきではない。fileName.endsWith(".gif") 、extension.equals(".gif") (およびほぼ等価な".gif".equals(extension) )のような演算子はありふれたものである。1
Java 11と12では、indent(int n) 、stripLeading()/stripTrailing() 、Stream<String> lines() 、isBlank() 、repeat(int n) 、transform() など、いくつかの新しいString メソッドが追加された。 Java 15では、stripIndent() が追加された。これらのほとんどは明らかな機能を提供するものである。transform では、 関数インターフェイスのインスタンス(9.0 はじめにを参照)を文字列に適用し、その演算結果を返すことができる。
java.ioパッケージの詳細についてはまだ説明していないが(第10章で説明する)、これらのプログラミングの一部ではテキストファイルを読み取ることができる必要がある。java.io をよく知らなくても、テキスト・ファイルを読み取る例から、BufferedReader を使えば データの塊を読み取れること、そしてこのクラスにはreadLine() という便利なメソッドがあることがわかるだろう 。
逆に、System.out.println() は通常、 文字列やその他の値をターミナルや標準出力に出力するために使われる。文字列の連結 、このような使い方が一般的である:
System.out.println("The answer is " + result);
文字列連結の注意点として、複数の値を連結する場合、数値とchar (1文字)が一緒に連結されると、Javaの優先規則により、連結前に加算される。だから、この作為的な例で私がやったようにはしないことだ:
intresult=...;System.out.println(result+'='+" the answer.");// FAILURE
result が整数であるとすると、result + = (result に数値型の等号文字char を足したもの ) は有効な数値式であり、int 型の1つの値になる。変数result が値42を持ち、ユニコード(またはASCII)コード表の文字= が値61を持つとすると、2行の断片が出力される:
103 the answer.
間違った値で等号がない!より安全な方法としては、括弧、等号を囲む二重引用符 、StringBuilder ( ...