2020.03.23
文字列の作成と初期化
はじめに
Stringクラスに文字列を代入する方法には、文字列リテラル(0文字以上の連続した文字列の定数でダブルコーテーションで文字列で囲む)を”=”で代入する方法と、newでStringクラスを作成する方法と、char型の配列を渡す方法と、byte型の配列を渡す方法があります。
String str1 = "Hello!"; String str2 = new String( "Hello!" );
Javaソースコード
StringCreate.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029
public class StringCreate { public static void main( String[] args ) { // Stringクラスのstr1に"Hello!"を格納 String str1 = "Hello!"; // Stringクラスのstr2に"Hello!"を格納 String str2 = new String( "Hello!" ); // Stringクラスのstr3に"Hello!"を格納(char配列を使う) char data[] = {'H', 'e', 'l', 'l', 'o', '!' }; String str3 = new String( data ); // Stringクラスのstr4に"Hello!"を格納(byte配列を使う) byte codes[] = { 72, 101, 108, 108, 111, 33 }; String str4 = new String( codes ); // str1を表示 System.out.println( "str1=" + str1 ); // str2を表示 System.out.println( "str2=" + str2 ); // str3を表示 System.out.println( "str3=" + str3 ); // str4を表示 System.out.println( "str4=" + str4 ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis StringCreate.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac StringCreate.java
実行
C:\talavax\javasample>java StringCreate
出力結果
str1=Hello! str2=Hello! str3=Hello! str4=Hello!
この結果から、3つの方法で格納した文字列str1とstr2とstr3が同じであることが確認できます。
Javaソースコードの解説
ここからソースを順番に説明していきます。
001
public class StringCreate {
002
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
003 004
// Stringクラスのstr1に"Hello!"を格納 String str1 = "Hello!";
006 007
// Stringクラスのstr2に"Hello!"を格納 String str2 = new String( "Hello!" );
009 010 011
// Stringクラスのstr3に"Hello!"を格納(char配列を使う) char data[] = {'H', 'e', 'l', 'l', 'o', '!' }; String str3 = new String( data );
Stringクラスstr3に、文字列"Hello!"をnew演算子を使って格納しています。この場合は、char型の配列の値から文字列を作成しています。文字コードから文字列を作るときは、この方法を使います。
013 014 015
// Stringクラスのstr4に"Hello!"を格納(byte配列を使う) byte codes[] = { 72, 101, 108, 108, 111, 33 }; String str4 = new String( codes );
Stringクラスstr4に、文字列"Hello!"をnew演算子を使って格納しています。この場合は、byte型の配列の値から文字列を作成しています。文字コードから文字列を作るときは、この方法を使います。ここで代入している数字は"Hello!"のASCIIコードです。
017 018 019 020 021 022 023 024 025 026 027
// str1を表示 System.out.println( "str1=" + str1 ); // str2を表示 System.out.println( "str2=" + str2 ); // str3を表示 System.out.println( "str3=" + str3 ); // str4を表示 System.out.println( "str4=" + str4 );
str1とstr2とstr3とstr4をprintlnメソッドでコンソール出力しています。
以上です。