String クラス:
は文字列を表し、文字列の長さの検索、文字列のインターセプト、文字列の置換など、開発における一般的な文字列処理メソッドを提供します。他のメソッドでは、文字列は定数であり、作成後にその値を変更することはできません。
まず、公式ドキュメントを確認して、公式が String クラスにどのようなメソッドを設定しているかを確認しましょう: String も java.lang パッケージに属しているため、インポートする必要はありません。完全な内容は次のとおり参照できます:
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html
一般的に使用されるいくつかのメソッド:
charAt(intindex):
文字の添字を渡し、文字をインターセプトし、戻り値は char 型です:
String str = "hello world"; char a = str.charAt(0); System.out.println(a);
//出力: h
compareTo(String anotherString): 2 つの文字列を比較して、添え字に対応する文字と最初に一致します。は異なります。ASCII コードで違いを返します。 case を無視しません。文字列型を返します:
String str = "hello world"; int a = str.compareTo("Aello world"); System.out.println(a);
//h と A を比較し、出力 39
compareToIgnoreCase(String str): サイズを無視して、辞書順で 2 つの文字列を比較します。書き込み、文字列型を返します:
String str = "hello world"; int a = str.compareToIgnoreCase("Aello world"); System.out.println(a);
//h と A を比較、出力 7
concat(String str): 文字列の連結:
String str = "hello world"; String a = str.concat("abc"); System.out.println(a);
//出力: hello worldabc
このメソッドは、特定の文字列がターゲット文字列に含まれているかどうかを確認するために使用され、ブール値:
String str = "hello world"; boolean a = str.contains("e"); //传入需要判断的值 System.out.println(a)
//出力: true
boolean a = str.contains("a"); //判断a System.out.println(a);
//出力 false
endsWith(文字列サフィックス):指定されたもので終わるかどうかを判断します (ユーザーの電子メール サフィックスによって判断できます) ブール値を返す:
String str = "1234567489@qq.com"; boolean a = str.endsWith("@qq.com"); //需要判断的内容 System.out.println(a);
//出力: true
startsWith(String prefix ): 文字列が指定されたプレフィックスで始まるかどうかを判定します: (URL 判定) ブール値を返す:
String str = "www.baidu.com"; boolean a = str.startsWith("www"); System.out.println(a);
//出力: true
equals(Object anObject):文字列と指定された文字列が等しいかどうかを比較し、大文字と小文字を区別し、ブール値を返します:
String str = "www.baidu.com"; boolean a = str.equals("Www.baidu.com"); //第一个w改为大写W System.out.println(a);
//出力: false
を出力します。
//2 つが同じ場合、true
equalsIgnoreCase(String anotherString): 文字列を指定された文字列に変換します。文字列の比較が等しいかどうか、大文字と小文字は区別されません。ブール値を返します:
String str = "www.baidu.com"; boolean a = str.equalsIgnoreCase("Www.Baidu.com"); //第一个w改为大写W System.out.println(a); //不区分大小写后,即使一个或多个字符改为大写,也不影响判断
//出力 true
indexOf(String str): 文字列内のインデックスを返します。指定された値のインデックスが 1 回見つかり、int 型が返されます:
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a System.out.println(a);
//出力: 5
lastIndexOf(String str): 指定された値の文字列インデックスで最後に見つかった時刻を返します。戻り値は int 型:
String str = "www.baidu.com"; int a = str.indexOf("a"); //判断a,因为这个字符串只有一个a,所以还是5 System.out.println(a);
//出力: 5
length(): 文字列の長さを int 型で返します:
String str = "www.baidu.com"; int a = str.length(); System.out.println(a);
//出力: 13
toLowerCase(): 文字列を次のように変換します。もともと小文字の場合は変更されず、文字列型:
String str = "www.BAIDU.com"; String a = str.toLowerCase(); System.out.println(a);
//出力: www.baidu.com
toUpperCase(): が返されます。文字列を大文字に変換します:
String str = "www.BAIDU.com"; String a = str.toLowerCase(); System.out.println(a);
//出力: WWW.BAIDU.COM
trim(): 文字列の両端の空白を削除します:
String str = " www.baidu.com "; //在前后端输出多个空格 String a = str.trim(); System.out.println(a);
//出力: www.baidu.com
String substring(int beginIndex,int endIndex): インターセプト文字列 (インデックスには beginIndex が含まれ、endIndex は含まれません):
String str = "www.baidu.com"; String a = str.substring(0,6); //截取下标0开始,6结束(不包含下标为6的字符) System.out.println(a);
//出力: www.ba
String のメソッドは多数あるため、ここではすべてをリストしません。公式 Web サイトを参照してください。
文字列オブジェクトの長さは変更できず、その内容を変更したり追加したりすることはできません。実際、これではビジネス ニーズを満たせない場合があり、文字列を変更する必要がある場合が常にあります。そのため、Java では、StringBuffer と StringBuilder という 2 種類の可変文字列文字列バッファーが提供されています。
まずは公式の紹介をご覧ください:
簡単に言えば、StringBuffer は文字の可変シーケンスです。列の長さと内容は、特定のメソッドを呼び出すことで変更できます。一部の StringBuffer メソッドは次のとおりです。詳細については、
https://docs.oracle.com/en/java/javase/ を参照してください。 17/docs/api/java .base/java/lang/StringBuffer.html
さまざまなビジネス ロジックのニーズを満たすために、append メソッドにオーバーロードされたフォームを正式に使用します。 StringBuffer を使用するには、最初にオブジェクトを作成する必要があります。これはクラス
public class StringBuffertest { public static void main(String[] args) { String str = "hello world"; StringBuffer s = new StringBuffer(str); //创建StringBuffer类,这个和普通类创建方法是一样的 s.append("hello world"); //使用StringBuffer的append方法 System.out.println(s); } }
//出力: hello worldhello world
//これで文字列の変更が完了です
StringBuilder使い方は同じです:
String str = "hello world"; StringBuilder s = new StringBuilder(str);
では、String、StringBuilder、StringBuffer の違いは何でしょうか?
可変性: 文字列は不変の文字シーケンス、ビルダーとバッファは可変文字シーケンスです。
安全性:String是线程安全的,StringBuilder是线程不安全的,StringBuffer是线程安全。StringBuidler效率高于StringBuffer。因为String是不可变的一般情况下,效率最低。
使用场景:如果字符串创建后基本上不需要更改,使用String类型,如果需要更改操作较多使用StringBuilder,如果要求线程安全使用StringBuffer。
StringBuffer和StringBuilder类的好处:
对象能够被多次的修改,并且不产生新的未使用对象
String类总结:
String有哪些特性:
不变性:String 是只读字符串,是一个典型的 immutable 对象,对它进行任何操作,其实都是创 建一个新的对象,再把引用指向该对象。不变模式的主要作用是确保在对象需要被多个线程频繁访问和共享时,数据的一致性不会被破坏。
常量池优化:String 对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时, 会直接返回缓存的引用。
final:使用 final 来定义 String 类,表示 String 类不能被继承,提高了系统的安全性。
小扩展:什么是字符串常量池?
字符串常量池位于堆内存中,专门用来存储字符串常量,可以提高内存的使用率,避免开辟多块空间存储相同的字符串,在创建字符串时 JVM 会首先检查字符串常量池,如果该字符串已经存在池中,则返回它的引用,如果不存在,则实例化一个字符串放到池中,并返回其引用。
字符型常量(char)和字符串常量(String)的区别:
形式上:字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符
含义上:字符常量相当于一个整形值(ASCII值),可以参加表达式运算,字符串常量代表一个地址值(该字符串在内存中存放位置)
占内存大小:字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)
特别注意: 我们知道数组也有 length(),用来判断该数组长度:
int [] a = {1,2,3,4,5}; system.out.println(a.length);
//输出:5
但是千万要注意:
数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!! 数组中length()是属性,String中length()是方法!!
以上がJavaにおけるStringクラスの利用方法にはどのようなものがあるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。