1.文字列の紹介と動画解説
- 文字列は定数であり、表現方法は二重引用符 ""で囲まれています
- 文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
ここをクリックしてBステーションに行き、ビデオをご覧ください
文字列を作成する2つ、2つの方法
方法1:新規作成
String str = new String("abcd");
方法2:直接作成する
String str1 = ("abcd");
3番目に、文字列取得の長さ:length()メソッド
String str1 = ("abcd");
int length = str1.length();
System.out.println("abcd的长度为:"+length);//4
4番目に、==およびequals()メソッドを使用して2つの文字列を比較します
1. ==を使用して2つの文字列を比較します(したがって、文字列を作成する2つの方法の違いを分析します)。
以下のために参照型、==をれる実行アドレス値とを比較します
String str = new String("abcd");//第一种创建方式:通过new创建
String str1 = new String("abcd");//第一种创建方式:通过new创建
String stra = "abcd";//第二种创建方式:直接创建
String strb = "abcd";//第二种创建方式:直接创建
System.out.println(str == str1);//new出的两个字符串对象之间比较,false
System.out.println(str == stra);//new出的字符串对象与直接创建的字符串对象之间比较,false
System.out.println(stra == strb);//直接创建的两个字符串对象之间比较,true
(1)新しい方法で作成された2つの文字列の比較
System.out.println(str == str1);//new出的两个字符串对象之间比较,false
その結果、我々は、コードが実行されていることを見ることができます。
String str = new String("abcd");//第一种创建方式:通过new创建
String str1 = new String("abcd");//第一种创建方式:通过new创建
- newによって作成されたstrおよびstr1文字列オブジェクトは同じ内容です
- ただし、新しいため、2つの異なるオブジェクトであるため、それらのアドレス値は異なる必要があります。
参照タイプの場合==アドレス値の比較
- したがって、実行結果は偽です
(2)直接作成された2つの文字列の比較
System.out.println(stra == strb);//直接创建的两个字符串对象之间比较,true
その結果、我々は、コードが実行されていることを見ることができます。
String stra = "abcd";//第二种创建方式:直接创建
String strb = "abcd";//第二种创建方式:直接创建
System.out.println(stra == strb);//true
-
STRA STRBの文字列オブジェクトを作成し、直接同じ内容のと同じアドレス値を
-
その理由は次のとおりです。
直接作成する文字列オブジェクトはに格納された文字列定数プールの
文字列定数プールはありません表示される重複したオブジェクトに対応するアドレスの文字列をすることができ、文字列が繰り返されないことを保証します
-
だから、STRAとSTRB アドレス値がある同じ、業績などの真
(3)直接作成した文字列とnewで作成した文字列の比較
System.out.println(str == stra);//new出的字符串与直接创建的字符串对象之间比较,false
その結果、我々は、コードが実行されていることを見ることができます。
String str = new String("abcd");//第一种创建方式:通过new创建
String stra = "abcd";//第二种创建方式:直接创建
-
newによって作成されたstrと直接作成されたstra文字列オブジェクトは同じ内容を持っています
-
しかし、新しいのうち文字列オブジェクトに格納スタックは、一つはある直接作成するために、文字列オブジェクトに格納される文字列定数プールのを
-
したがって、それらのアドレス値は異なる必要があります
-
したがって、実行結果は偽です
2. 2つの文字列をequals()メソッドで比較:2つの文字列の内容が同じかどうかを比較
- これら4つの文字列の内容はすべて「abcd」であるため
- したがって、equals()メソッドと比較すると、結果はtrueになります
String str = new String("abcd");
String str1 = new String("abcd");
String stra = "abcd";
String strb = "abcd";
System.out.println(str.equals(str1));//true
System.out.println(str.equals(stra));//true
System.out.println(stra.equals(strb));//true
五、紐のつながり
(1)「+」で接続:さまざまなタイプで接続できます
String str = new String("abcd");
int a = 12;
String b = a + str;
System.out.println(b);//12abcd
(2)concat()メソッドで接続:文字列と文字列の接続にのみ使用できます
String str1 = new String("abcd");
String str2 = str.concat(str1);
System.out.println(str1);//abcd
System.out.println(str2);//abcdabcd
上記のstr1とstr2からの出力は、かなり前に理解できます。
文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
6、文字列に指定された文字列が含まれているかどうかを判断する
ここで「char値シーケンスはより難解です」。
初期の段階では、contains()メソッドを使用すると次のことができることを直接理解できます。
-
文字列に指定した文字列が含まれているかどうかを確認します
-
そのようなものとして次の例であり、決定 文字列str中かどうか 含ま 「AB」配列
String str = new String("abcd");
boolean judge = str.contains("ab");
System.out.println(judge);//true
7、文字列の大文字小文字変換
(1)大文字の文字列を小文字に変換する
String strc = ("ABREa");
System.out.println(strc);//ABREa
System.out.println(strc.toLowerCase(););//abrea
上記のstrcとstrc.toLowerCase()の出力から、先ほど言ったことを理解できます。
文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
(2)小文字の文字列を大文字に変換する
String str = new String("abcd");
System.out.println(str);//abcd
System.out.println(str.toUpperCase(););//ABCD
上記のstrとstr.toUpperCase()の出力から、先ほど言ったことを理解できます。
文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
8.指定されたインデックスに対応する文字を取得します
注:文字列のインデックスは0から始まります
String str = new String("abcd");
System.out.println(str);//abcd
System.out.println(str.charAt(1));//b
上記のstrとstr.charAt(1)の出力から、先ほど言ったことを理解できます。
文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
9、指定された文字列の最初の出現のインデックスを取得します
次の2つの変換方法の出力結果は、以前によく理解できます。
文字列値で作成後に変更することはできませんが、あなたが感じるたびに、文字列が変更されており、それは新しい文字列を作成することです
最初の:
String str4 = "012345618a9";
int index = str4.indexOf("1");//找到字符串"1"首次出现的索引
System.out.println(index2);//1
System.out.println("=====================");
int index1 = str4.indexOf("1", index + 1);//从index2 + 1开始找字符串"1"首次出现的索引
System.out.println(index3);//7
- index2 = 1の場合、インデックス1 は部分文字列 "1"の最初の出現を記録します
- そうでサブ「1」秒を探しているように見える位置+ 1つのINDEX2から位置探しを開始します
- index2の位置が見つかったため
- 場合もINDEX2 = 1の位置を見つけ、その後、インデックスは1又は発見されました
第二種:
String str5 = "012345612a9";
int index4 = str5.indexOf('2');//找到字符'2'首次出现的索引
System.out.println(index4);//2
System.out.println("=====================");
int index5 = str5.indexOf('2', index4 + 1);//从index4 + 1开始找字符'2'首次出现的索引
System.out.println(index5);//8
- index4 = 2の場合、インデックス2 は文字 '2'が最初に出現する位置を記録します
- だから、「2」二文字の見た目の位置があるように思わ+ 1つのindex4から位置探し始めるためには、
- index4の位置が判明しているため
- 場合もindex4 = 1の位置を見つけ、その後、インデックスは依然として2見出されます
10、文字列変換文字配列および文字列と基本データ型間の変換
(1)文字列変換文字配列
String str = new String("abcd");
char ch[] = str.toCharArray();//将字符串转换为字符数组
for(int i =0;i<ch.length;i++) {//遍历得到的字符数组
System.out.println(ch[i]);
}
(2)文字列と基本データ型の変換
1.文字列を基本データ型に変換:例として文字列をintに変換します
//字符串转换成int型
String stre = "123456";
int a1 = Integer.parseInt(stre);//对应的包装类.parsexxx 方法
System.out.println(a1+2);//123458,证明是int型
2.基本的なデータ型から文字列への変換:int型から文字列への変換を例にとります
//int型转换成字符串
int num =123;
String strs = String.valueOf(num);// String.valueOf()方法
System.out.println(strs+12);//12312,证明是字符串
このひもへの乾物はまとめられます~~
公共の番号「ミッシー・プログラミングコンテンツの共有・ステーション」へようこそ
-リトル・ジョーを遊びに来
たJava +アルゴリズムを学ぶ-と
あなたがああ来るのを、より多くのリソース〜