Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > FAQ > Java基本 −1.文字列
更新日:2011/3/4
FAQ−1.文字列
(1). 文字列の比較
(2). 文字列の置換
(3). 文字列の分割
(4). 文字列を数値に変換
(5). 数値を文字列に変換
(1). 文字列の比較
文字列の値を比較する場合はequalsメソッドを使用します。演算子==はオブジェクトの値ではなく、オブジェクトの参照元を比較するので正しい実行結果は得られません。==は、int、doubleなど基本型(プリミティブ型)の値を比較する際に使用します。
String abc = new String("Javaの道");
String xyz = new String("Javaの道");

if (abc.equals(xyz)) {
  System.out.println("abcとxyzは同じ値です。");
}
【参考】Javaの道:演算子(2.比較演算子)
(2). 文字列の置換
文字列の置換を行いたいときはreplaceメソッドを使用します。正規表現を利用し、より高度な置換を行いたいときはreplaceAllメソッドを使用します。
正規表現の詳細はjava.util.regexパッケージのJava APIドキュメントをご参照ください。
//vaをpanに置換しています。
String exStr1 = new String("Java Java"); System.out.println("replaceの結果:" + exStr1.replace("va", "pan")); System.out.println("---------------------------"); //正規表現を利用して、aまたはeを0に置換しています。
String exStr2 = new String("Japanese"); System.out.println("replaceAllの結果:" + exStr2.replaceAll("[ae]", "0"));

C:\Java\source\TEST>javac Test.java

C:\Java\source\TEST>java Test

replaceの結果:Japan Japan   ←replaceの実行結果です。

---------------------------

replaceAllの結果:J0p0n0s0  ←replaceAllの実行結果です。

【参考】Javaの道:文字列(7.正規表現)
(3). 文字列の分割
文字列を指定した区切り文字で分割する際はStringクラスのsplitメソッドを使用します。区切り文字を正規表現で指定することもでき、単純な分割から複雑な分割まで柔軟に対応することができます。
String str = new String("java,Java,JAVA");
//文字列「java,Java,JAVA」を指定した区切り文字,で分割しています。
String[] strAry = str.split(",");

for (int i=0; i>strAry.length; i++) {
  System.out.println(strAry[i]);
}

C:\Java\source\TEST>javac Test.java

 

C:\Java\source\TEST>java Test

java

Java

JAVA

【参考】Javaの道:文字列(6.文字列の分割)
(4). 文字列を数値に変換
文字列をint、doubleなどの数値に変換する場合は、変換したい数値の型に対応した各クラス(Byte、Short、Integer、Long、Float、Double)のparseXxxメソッドを使用します。文字列が適切な値(数字と認識できない、空白が含まれているなど)でない場合は、java.lang.NumberFormatExceptionの例外が発生します。
String str1 = new String("10000");
String str2 = new String("3.14");

int num1 = Integer.parseInt(str1); //文字列"10000"をint型に変換
double num2 = Double.parseDouble(str2); //文字列"3.14"をdouble型に変換
【参考】Javaの道:数データ(2.文字列から数、数から文字列へのデータ変換)
(5). 数値を文字列に変換
数値を文字列に変換する場合は、変換する数値の型に対応した各クラス(Byte、Short、Integer、Long、Float、Double)のtoStringメソッドを使用します。
int num1 = 10000;
double num2 = 3.14;

String str1 = Integer.toString(num1); //数値10000を文字列(String)に変換
String str2 = Double.toString(num2); //数値3.14を文字列(String)に変換
【参考】Javaの道:数データ(2.文字列から数、数から文字列へのデータ変換)



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道