[21.07.21] API


文字列関連関数📌私は田野を勉強した.

API


Application Programming Interface. APIは、プログラミング言語またはオペレーティングシステムが提供する機能を使用して作成されるインタフェースです.JAvaが提供する多くの関数もAPIと呼ばれています!

String literal


新しく作成されたオブジェクト(エンティティインスタンス定数、1、1.0、20.0 f、abcなど)を初期化し、メモリ回収呼び出しのたびにvaluecall by referenceに新しいアドレス値call by valuecall by referenceを割り当てます.
callby~ここで簡単に紹介したんですよね?
newジェネレータが呼び出されるたびに、インスタンスは新しいインスタンスを作成し、アドレス値を変更します.したがって、newが書きすぎると、メモリが多すぎて効率が悪い.
文字列テキストを使用して初期化すると、テキストが存在しない場合に新しいインスタンスが作成されますが、既存のテキストが存在する場合は、新しいインスタンスは作成されず、既存のインスタンスを再利用します.したがって、文字列の内容が同じテキストには同じアドレス値があります.

📌equalsIgnoreCase()


前に学習したequals()と同様の動作を行い、文字列の大文字と小文字を区別せずに内容を比較する関数であることを区別します.同じ内容の場合はtrue、エラーの場合はfalseです.UpperCase(大文字)とLowerCase(小文字)を無視して比較すればいいので、関数の名前だけを見て用途を推測できます~
String str3="hello";
String str4="Hello";
System.out.println(str3.equals(str4)); //false
System.out.println(str3.equalsIgnoreCase(str4)); //true

📌indexOf()


文字または文字列が最初に表示されたインデックス番号を返します.ターゲットが文字列にない場合は、-1を返します.
String str ="자바 프로그램";
int index = str.indexOf("자바");
if(index == -1) { 
	System.out.println("자바 문자열이 포함되어 있지 않습니다.");
}else {
	System.out.println("자바 문자열이 포함되어 있습니다.");
}

📌lastIndexOf()


最後に表示された文字または文字列のインデックス番号を返します.もしhelloの「l」の最後のインデックス番号が4だったら?

📌startWith()


この文字列で始まる文字列の場合、trueまたはfalseが返されます.String str1="https://www.google.com"; System.out.println(str1.startsWith("https://")); //true

📌contains()


文字列を含む文字列の場合はtrueまたはfalseを返します.System.out.println(str1.contains("google")); //true

📌split()


文字列を特定の条件で区切る関数.区切られた文字列は配列に格納されます.一般的にこの特定の基準には特殊な文字がたくさん使われています(.$|()[{^?*)を使用する場合は、コンピュータが認識する前に記号の前にを書かなければなりません.str.split("\\\\");<で区切った場合str.split("\\."); < .を押します.
分かち合う条件がたくさんあるとき?使用orの役割"|"
String str="2021-07-21 12:44:00";
String[] result=str.split("-| |:");

📌compareTo()


この文字列とは異なる文字数(「マイ文字列」)を返します.文字列の後ろに同じ文字が表示されない場合は、前の他の文字に戻る個数は負です.
String str1="abc";
String str2="bbc";
System.out.println(str1.compareTo("abc")); //0
System.out.println(str1.compareTo("ab")); //1
System.out.println(str1.compareTo("a")); //2
System.out.println(str1.compareTo("c")); //-2
System.out.println(str1.compareTo(str2)); //-1

📌compareToIgnoreCase()


上のcompareTo()と似ていますが、大文字と小文字を区別せず、文字列を比較して異なる文字の数を返します.

📌toUpperCase()


すべての文字列を大文字に変更して返します.

📌toLowerCase()


すべての文字列を小文字に変更して返します.

📌substring(begin, end)


文字列全体のインデックス番号を最初から最後まで-1の文字列を返します.

📌concat()


文字列を接続する方法で、文字列の直後に文字列を出力します.

📌hashCode()


オブジェクトのアドレス値を一意の整数に変換する値を返します.hashCode()の値が同じ場合は、同じオブジェクトであることを示します.

📌append()


文字列を接続する方法はconcat()に似ています!でもStringBuffer文字列を接続~

📌insert(index, String)


StringBuffer文字列のindex部分に文字列を挿入します.

📌delete(start, end)


StringBuffer文字列のインデックス番号の最初から最後までの文字列を削除します.

📌replace(start, end, String)


StringBuffer文字列のインデックス番号を最初から最後までの文字列から入力Stringに変換します.

📌replace(String, String)


文字列全体で、前の文字列を後ろの文字列に変換します.

StringBuffer / StringBuilder


元のStringは変更できないクラスです.このStringだけを読むと、非常に有効な変数になります.
Stringの内容を修正したら?
String str="abc";
System.out.println(str);
System.out.println(str.hashCode()); //96354

str=str+"def";  
System.out.println(str);	
System.out.println(str.hashCode()); //-1424385949
Stringの内容が変化するとアドレス値も変化します.では、文字列を変更し続ける変数があれば、毎回新しいアドレス値が生成されますが、これは無効ですよね?アドレス値を生成するたびに文字列の内容を変更するには、2つの方法があります.StringBufferとStringBuliderは可変クラスと呼ばれます.
StringBufferStringBuilderJava 1.0で使用されるJava 5.0で使用される追加/削除速度が遅いThread-SafeThread-Safensantマルチスレッド環境シングルスレッド環境
StringBufferとStringBuliderは速度とThread環境以外は同じ方法で、他のすべての機能は同じクラスです!参照クラスであるため、ジェネレータを使用して初期化および使用する必要があります.toString()メソッドは上書きされ、文字列も変数名として出力され、文字列Stringのように~
StringBuffer buffer = new StringBuffer("abc");
System.out.println(buffer.hashCode()); //1556956098

buffer.append("def").append("ghi");
System.out.println(buffer.hashCode()); //1556956098
StringBufferを使用すると、新しいアドレスを指定せずに文字列の内容を変更でき、メモリを節約できます.

正規表現


正規表現は、文字列内の特定の文字の組み合わせを決定するために使用されます.わかりにくいかもしれませんが、例を挙げて用途を知りましょう.

電話番号の確認

  • (02|010|031):02または010または031で始まる数字
  • を決定する.
  • "-":"-"記号確認
  • d{3,4}:
  • 、3~4桁の数字
  • d{4}:
  • 、4桁の数字
    String regExp="(02|010|031)-\\d{3,4}-\\d{4}";
    boolean result=Pattern.matches(regExp, data);
    if(result) {
    	System.out.println("정상적인 번호");
    }else {
    	System.out.println("비정상적인 번호");
    }

    Eメールの検証:

  • w+:1つ以上のアルファベットまたは数字
  • をチェック
  • @:"@"記号
  • をチェック
  • . : '.' シンボル確認
  • (.\w+)? : '.'1つ以上のアルファベットや数字はなくてもいいし、一度でもいいです.regExp="\\w+@\\w+\\.\\w(\\.\\w+)?";
  • (21.07.22追加)
  • ^0-9:00から9までの数字は
  • ではありません
  • []+:1回以上
  • [^0-9]+:非数値が1回以上ある場合は
  • 📌Pattern.一致(正規表現、String)


    正規表現を含む文字列を検証する文字列と比較し、正規表現を適用する文字列に一致する場合はtrueを返し、そうでない場合はfalseを返します.