【Java】「Java」での「文字列」の「使い方」

【Java】
「Java」での「文字列」の「使い方」







はじめに



「Java」では、
「java.lang.String」クラスの「メソッド」などを使用して、
「文字列」を扱うことができる。

「Java」の「標準ライブラリー」には、
「文字列」を取り扱う「メソッド」が、
多く用意されているので、
使い方を覚えると、
色々な操作ができるようになる。


Back

「文字列」を「変数」に「格納」する方法



「文字列」を「変数」に格納するのは、
簡略化されているので、
「String型の変数」に、「文字列」を格納するだけ。


「文字列」を扱う場合は、
自動的に「インスタンス」が作成され、
格納されるようになっている。



「文字列」を「変数」に格納する「書式」


String a = "Hello Java";
String b = new String("Hello Java");



String str = "abc";
は、下記と同じ。
char data[] = {'a', 'b', 'c'};
String str = new String(data);



Back

「文字列」に「文字列」を「追加」する方法



「文字列」に「文字列」を「追加」するには、
「java.lang.StringBuilder」クラスの 「append()」メソッドと「toString」メソッドを使用する。

「new StringBuilder()」で、「インスタンス」を作成し、
「append()」メソッドで「文字列」を「インスタンス」に追加する。
「文字列」を追加された「インスタンス」を
「toString」メソッドを使用して、「文字列」に変換し、
「変数」へ格納することで、「1つの文字列」として「出力」をすることができる。



「文字列」に「文字列」を「追加」する「書式」


StringBuilder WordText = new StringBuilder();
WordText.append("Hello");
WordText.append(" ");
WordText.append("Java");
WordText.append(" ");
WordText.append("World!");
String OutputMessage = WordText.toString();
System.out.println(OutputMessage);



StringBuilder WordText2 = new StringBuilder();
WordText2.append("Hello").append(" Java").append(" World!");
String OutputMessage2 = WordText2.toString();
System.out.println(OutputMessage2);



Back

「文字列」を「比較」する方法



「equals()」メソッドは、
文字を比較するのに使える。

「"文字列".equals("比較文字")」
「変数名.equals(変数名)」
と記述することで、
「文字」の「比較」ができる。



「文字列」から「文字」を「抽出」する「書式」


if("".equals("比較文字 or 変数")) {
  System.out.println("同じ文字列");
}else {
  System.out.println("異なる文字列");
}



Back

「文字列」から「文字」を「抽出」する方法



「文字列」から「文字」を「抽出」するには、

・charAt()
・substring()

を利用する。

「charAt()」メソッドは、
「charAt(数字)」と指定することで、
「文字位置」を指定することで、
その場所にある「1文字」を「抽出」することができる。

「charAt(0)」と記述すると「最初の1文字」が抽出される。



「substring()」メソッドは、
「substring(数字, 数字)」と指定することで、
「複数の文字」を「抽出」することができる。
「substring(0, 2)」と記述することで、
「最初から2文字」を「抽出」することができる。



「文字列」から「文字」を「抽出」する書式


System.out.println(変数名.charAt(1));
System.out.println("abcde".charAt(1));
出力結果
 b



String SampleWord = "abcde";
System.out.println(SampleWord.substring(2,4));
出力結果
 cd



Back

「文字列」の「文字」を「置換」する方法



「文字列」の「置換」には、
「replace()」メソッドを使用する。

「replace("置換前の文字列", "置換後の文字列")」というように記述すると、
指定した「文字」「文字列」が「置換」をされる。





「文字列」の「文字」を「置換」する書式


String SampleWord = "abcde";
String ReplacedSampleWord = SampleWord.replace("a", "A");
System.out.println(ReplacedSampleWord);

出力結果
 Abcde



Back

「文字列」を「分割」する方法



「文字列」を「分割」するには、
「split()」メソッドを使用する。

「変数名.split(変数名);」
「"分割したい文字列".split("区切り文字");」
というように記述し、
結果を「配列」に格納する。

配列の中身を「出力」する方法まで、
「パターン」をメモしておけば、
簡単に応用ができる。



「文字列」を「分割」する書式


String SampleWord = "abcde";
String[] SplitWordArray = SampleWord.split("c");
 for(String SplitWord : SplitWordArray) {
  System.out.println(SplitWord);
 }


出力結果
ab
de


Back

「java.lang.String」クラスで使用できる「メソッド」一覧



「java.lang.String」クラスは、
「文字列」を取り扱う「クラス」で、

クラスの中には、
「文字列」を取り扱う「メソッド」が多く格納されている。

「文字列」は、「定数」として扱われ、
「値」を作成したあとに「変更」はできない。

・「文字列バッファ」は、「可変文字列」
・「文字列オブジェクト」は、「不変」

となっている。
「共用」することは可能。



「java.lang.String」クラスの「メソッド」一覧

修飾子と型メソッド説明
主に使用される「メソッド」
charcharAt(int index) 指定されたインデックスの「char値」を返す。
booleanequals(Object anObject) この文字列と指定されたオブジェクトを比較する。
Stringreplace(char oldChar, char newChar) この文字列内にあるすべてのoldCharをnewCharに置換した結果生成される文字列を返す。
Stringreplace(CharSequence target, CharSequence replacement) リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換える。
StringreplaceAll(String regex, String replacement) 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行する。
StringreplaceFirst(String regex, String replacement) 指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行する。
String[]split(String regex) この文字列を、指定された正規表現に一致する位置で分割する。
String[]split(String regex, int limit) この文字列を、指定された正規表現に一致する位置で分割する。
Stringsubstring(int beginIndex) この文字列の部分文字列である文字列を返す。
Stringsubstring(int beginIndex, int endIndex) この文字列の部分文字列である文字列を返す。
一覧
charcharAt(int index) 指定されたインデックスの「char値」を返す。
intcodePointAt(int index) 指定されたインデックス位置の「文字(Unicodeコード・ポイント)」を返す。
intcodePointBefore(int index) 指定されたインデックスの「前の文字(Unicodeコード・ポイント)」を返す。
intcodePointCount(int beginIndex, int endIndex) このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返す。
intcompareTo(String anotherString) 2つの文字列を辞書的に比較する。
intcompareToIgnoreCase(String str) 大文字と小文字の区別なしで、2つの文字列を辞書的に比較する。
Stringconcat(String str) 指定された文字列をこの文字列の最後に連結する。
booleancontains(CharSequence s) この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返す。
booleancontentEquals(CharSequence cs) この文字列と指定されたCharSequenceを比較する。
booleancontentEquals(StringBuffer sb) この文字列と指定されたStringBufferを比較する。
static StringcopyValueOf(char[] data) valueOf(char[])と同等。
static StringcopyValueOf(char[] data, int offset, int count) valueOf(char[], int, int)と同等。
booleanendsWith(String suffix) この文字列が、指定された接尾辞で終るかどうかを判定。
booleanequals(Object anObject) この文字列と指定されたオブジェクトを比較する。
booleanequalsIgnoreCase(String anotherString) 大文字と小文字を区別せずに、このStringを別のStringと比較する。
static Stringformat(Locale l, String format, Object... args) 指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返す。
static Stringformat(String format, Object... args) 指定された書式の文字列と引数を使って、書式付き文字列を返す。
byte[]getBytes() プラットフォームのデフォルトの文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納する。
byte[]getBytes(Charset charset) 指定された文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納する。
voidgetBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) 非推奨。 このメソッドでは、文字からバイトへの変換が正しく行われません。JDK 1.1では、文字からバイトへの変換には、プラットフォームのデフォルト文字セットを使用するgetBytes()メソッドの使用が推奨されます。
byte[]getBytes(String charsetName) 指定された文字セットを使用してこのStringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納する。
voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) この文字列から、コピー先の文字配列に文字をコピーする。
inthashCode() この文字列のハッシュ・コードを返す。
intindexOf(int ch) この文字列内で、指定された文字が最初に出現する位置のインデックスを返す。
intindexOf(int ch, int fromIndex) この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返す。
intindexOf(String str) この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返す。
intindexOf(String str, int fromIndex) 指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返す。
Stringintern() 文字列オブジェクトの正準表現を返す。
booleanisEmpty() length()が0の場合にのみ、trueを返す。
static Stringjoin(CharSequence delimiter, CharSequence... elements) 指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返す。
static Stringjoin(CharSequence delimiter, Iterable<? extends CharSequence> elements) 指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返す。
intlastIndexOf(int ch) この文字列内で、指定された文字が最後に出現する位置のインデックスを返す。
intlastIndexOf(int ch, int fromIndex) この文字列内で、指定された文字が最後に出現する位置のインデックスを返す(検索は指定されたインデックスから開始され、先頭方向に行われる)。
intlastIndexOf(String str) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返す。
intlastIndexOf(String str, int fromIndex) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返す(検索は指定されたインデックスから開始され、先頭方向に行われる)。
intlength() この文字列の長さを返す。
booleanmatches(String regex) この文字列が、指定された正規表現と一致するかどうかを判定。
intoffsetByCodePoints(int index, int codePointOffset) このString内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返す。
booleanregionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 2つの文字列領域が等しいかどうかを判定。
booleanregionMatches(int toffset, String other, int ooffset, int len) 2つの文字列領域が等しいかどうかを判定。
Stringreplace(char oldChar, char newChar) この文字列内にあるすべてのoldCharをnewCharに置換した結果生成される文字列を返す。
Stringreplace(CharSequence target, CharSequence replacement) リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換える。
StringreplaceAll(String regex, String replacement) 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行する。
StringreplaceFirst(String regex, String replacement) 指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行する。
String[]split(String regex) この文字列を、指定された正規表現に一致する位置で分割する。
String[]split(String regex, int limit) この文字列を、指定された正規表現に一致する位置で分割する。
booleanstartsWith(String prefix) この文字列が、指定された接頭辞で始まるかどうかを判定。
booleanstartsWith(String prefix, int toffset) この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定。
CharSequencesubSequence(int beginIndex, int endIndex) このシーケンスのサブシーケンスである文字シーケンスを返す。
Stringsubstring(int beginIndex) この文字列の部分文字列である文字列を返す。
Stringsubstring(int beginIndex, int endIndex) この文字列の部分文字列である文字列を返す。
char[]toCharArray() この文字列を新しい文字配列に変換。
StringtoLowerCase() デフォルト・ロケールのルールを使って、このString内のすべての文字を小文字に変換。
StringtoLowerCase(Locale locale) 指定されたLocaleのルールを使って、このString内のすべての文字を小文字に変換。
StringtoString() このオブジェクト(すでに文字列である)自身が返す。
StringtoUpperCase() デフォルト・ロケールのルールを使って、このString内のすべての文字を大文字に変換。
StringtoUpperCase(Locale locale) 指定されたLocaleのルールを使って、このString内のすべての文字を大文字に変換。
Stringtrim() 値がこの文字列である文字列を返します(先頭と末尾の空白は削除される)。
static StringvalueOf(boolean b) boolean引数の文字列表現を返す。
static StringvalueOf(char c) char引数の文字列表現を返す。
static StringvalueOf(char[] data) char配列引数の文字列表現を返す。
static StringvalueOf(char[] data, int offset, int count) char配列引数の特定の部分配列の文字列表現を返す。
static StringvalueOf(double d) double引数の文字列表現を返す。
static StringvalueOf(float f) float引数の文字列表現を返す。
static StringvalueOf(int i) int引数の文字列表現を返す。
static StringvalueOf(long l) long引数の文字列表現を返す。
static StringvalueOf(Object obj) Object引数の文字列表現を返す。
クラス java.lang.Objectから継承されたメソッド ・clone
・finalize
・getClass
・notify
・notifyAll
・wait
・wait
・wait
インタフェース java.lang.CharSequenceから継承されたメソッド ・chars
・codePoints


Back