2014年02月22日
JavaEEの前に復習をしてみる その13 文字列の調査や検索
Stringって文字列を表示するだけのものではなくて、
文字情報の比較・検索・抽出にも使えるので、例えばYahoo天気のページから
今日の天気や明日の天気のデータを抽出するような時にも使えます。
今日は、Stringを使った文字列操作を学習してみます。
1.文字列の調査
public class JavaString {
public static void main(String [] args){
String st1 = "Javaを勉強しています" ;
String st2 = "javaを勉強しています" ;
if (st1.equals(st2)){
System. out .println("この文字列は一緒です" );
} else if (st1.equalsIgnoreCase (st2)){
System. out .println("大文字小文字を区別しなければ一緒です" );
} else {
System. out .println("違います" );
}
}
}
例えば、上記のようなプログラムを作った場合、結果は、
「大文字小文字を区別しなければ一緒です」
という結果が返ってきます。
ここでは、
st1.equals(st2)
st1.equalsIgnoreCase (st2)
の2つを使っていますが、
st1とst2が同一であるかを比較する構文になっています。
st1.equals(st2)の場合は、文字列の完全一致を求めているので、
st1とst2は、Java と java の違いがあるので同一と判断されません。
しかし、st1.equalsIgnoreCaseは、大文字小文字を区別しませんので、
同一の文字列として認識し、else ifの結果が返ってくるといったようになります。
あと、よく使うのが、文字列の長さを調べるlengthですね。
System. out.println(st1.length());
とすると、12という文字列の長さを返すことができます。
2.文字列の検索
以下のようになプログラムを書きます。
public class JavaString2 {
public static void main(String [] args){
String st3 = "ブログ記事にJavaScriptとJava" ;
System. out .println(st3.contains("Java" ));
System. out .println(st3.startsWith("ブログ" ));
System. out .println(st3.endsWith("Java" ));
System. out .println(st3.indexOf("Java" ));
System. out .println(st3.lastIndexOf("Java" ));
}
}
結果は、
true
true
true
6
17
一つ一つの役割ですが、
st3.contains("Java" )
こちらは、Javaが文字列に含まれていればTrueを返します。
st3.startsWith("ブログ" )
こちらは、頭にブログという文字列があればTrueを返します。
st3.endsWith("Java" )
想像がつくかとは思いますが、文字列の最後にJavaがあればTrueを返します。
st3.indexOf("Java" )
こちらは、Javaを頭から検索して何文字目にJavaがあるかを示します。
(0)ブ(1)ロ(2)グ(3)記(4)事(5)に(6)Java
で、6という数字が返ってきます。
st3.lastIndexOf("Java" )
こちらは、文字列の最後からJavaという文字列を検索して、
頭から何文字目にあるかという検索の仕方です。最初のJavaよりも最後のJavaの文字列の方が優先されます。
文字列操作だけで、かなり楽しい感じです。
次回も文字列に関する記事を書いていきます。
文字情報の比較・検索・抽出にも使えるので、例えばYahoo天気のページから
今日の天気や明日の天気のデータを抽出するような時にも使えます。
今日は、Stringを使った文字列操作を学習してみます。
1.文字列の調査
public class JavaString {
public static void main(String [] args){
String st1 = "Javaを勉強しています" ;
String st2 = "javaを勉強しています" ;
if (st1.equals(st2)){
System. out .println("この文字列は一緒です" );
} else if (st1.equalsIgnoreCase (st2)){
System. out .println("大文字小文字を区別しなければ一緒です" );
} else {
System. out .println("違います" );
}
}
}
例えば、上記のようなプログラムを作った場合、結果は、
「大文字小文字を区別しなければ一緒です」
という結果が返ってきます。
ここでは、
st1.equals(st2)
st1.equalsIgnoreCase (st2)
の2つを使っていますが、
st1とst2が同一であるかを比較する構文になっています。
st1.equals(st2)の場合は、文字列の完全一致を求めているので、
st1とst2は、Java と java の違いがあるので同一と判断されません。
しかし、st1.equalsIgnoreCaseは、大文字小文字を区別しませんので、
同一の文字列として認識し、else ifの結果が返ってくるといったようになります。
あと、よく使うのが、文字列の長さを調べるlengthですね。
System. out.println(st1.length());
とすると、12という文字列の長さを返すことができます。
2.文字列の検索
以下のようになプログラムを書きます。
public class JavaString2 {
public static void main(String [] args){
String st3 = "ブログ記事にJavaScriptとJava" ;
System. out .println(st3.contains("Java" ));
System. out .println(st3.startsWith("ブログ" ));
System. out .println(st3.endsWith("Java" ));
System. out .println(st3.indexOf("Java" ));
System. out .println(st3.lastIndexOf("Java" ));
}
}
結果は、
true
true
true
6
17
一つ一つの役割ですが、
st3.contains("Java" )
こちらは、Javaが文字列に含まれていればTrueを返します。
st3.startsWith("ブログ" )
こちらは、頭にブログという文字列があればTrueを返します。
st3.endsWith("Java" )
想像がつくかとは思いますが、文字列の最後にJavaがあればTrueを返します。
st3.indexOf("Java" )
こちらは、Javaを頭から検索して何文字目にJavaがあるかを示します。
(0)ブ(1)ロ(2)グ(3)記(4)事(5)に(6)Java
で、6という数字が返ってきます。
st3.lastIndexOf("Java" )
こちらは、文字列の最後からJavaという文字列を検索して、
頭から何文字目にあるかという検索の仕方です。最初のJavaよりも最後のJavaの文字列の方が優先されます。
文字列操作だけで、かなり楽しい感じです。
次回も文字列に関する記事を書いていきます。
【Javaの最新記事】