package base.string;
import java.util.ArrayList;
import java.util.List;
public class StringTest {
public static void main(String[] args) {
// å建å符串æç®åçæ¹å¼å¦ä¸:
// 注æ:String ç±»æ¯ä¸å¯æ¹åçï¼æä»¥ä½ ä¸æ¦åå»ºäº String 对象ï¼é£å®çå¼å°±æ æ³æ¹åäºï¼è¯¦çç¬è®°é¨åè§£æï¼ã
//妿éè¦å¯¹å符串åå¾å¤ä¿®æ¹ï¼é£ä¹åºè¯¥éæ©ä½¿ç¨ StringBuffer & StringBuilder ç±»ã
String s = "Google";
System.out.println("s = " + s);
s = "Runoob";
System.out.println("s = " + s);
//Google
//Runoob
//ä»ç»æä¸çæ¯æ¹åäºï¼ä½ä¸ºä»ä¹é¨è¯´String对象æ¯ä¸å¯åçå¢ï¼
//åå å¨äºå®ä¾ä¸ç s åªæ¯ä¸ä¸ª String 对象çå¼ç¨ï¼å¹¶ä¸æ¯å¯¹è±¡æ¬èº«ï¼
// 彿§è¡ s = "Runoob"; å建äºä¸ä¸ªæ°ç对象 "Runoob"ï¼è忥ç "Google" è¿åå¨äºå
åä¸ã
String str = "Stage";
String s1 = "Stage9527"; // String ç´æ¥å建
String s2 = "Stage95277"; // String ç´æ¥å建
String s3 = s1; // ç¸åå¼ç¨
String s4 = new String("Stage9527b"); // String 对象å建
String s5 = new String("Stage9527c"); // String 对象å建
System.out.println(s1);
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
char[] helloArray = {'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
String helloString2 = new String(helloArray, 0, helloArray.length - 1);
System.out.println(helloString);
System.out.println(helloString2);
String st = new String("stage.");
int len = st.length();
System.out.println("st: " + st);
System.out.println("st lenght: " + len);
String st2 = st.concat("9527");
System.out.println("st2: " + st2);
int len2 = st2.length();
System.out.println("st2 lenght: " + len2);
System.out.println("st2æ¯å¦å
å«s");
System.out.println(st2.contains("s")); //true
System.out.println(st2.isEmpty()); // false
System.out.println("st2.toCharArray(): "+st2.toCharArray());
test();
test2();
cancattest();
// System.out.printf("æµ®ç¹ååéçå¼ä¸º " +
// "%f, æ´ååéçå¼ä¸º " +
// " %d, å符串åéçå¼ä¸º " +
// "is %s", floatVar, intVar, stringVar);
}
public static void test() {
String arr[] = {"First", "Second", "Third", "four"};
String a = "HelloWorld";
List list = new ArrayList();
list.add(a);
list.add(arr[0]);
System.out.println("æ°ç»arrayçé¿åº¦ä¸º" + arr.length);
System.out.println("å符串açé¿åº¦ä¸º" + a.length());
System.out.println("listä¸å
ç´ ä¸ªæ°ä¸º" + list.size());
System.out.println();
}
public static void test2() {
String a = "a";
String b = "b";
String c = a + b;
String cc = new StringBuffer().append(a).append(b).toString();
System.out.println(c);
System.out.println("c"+cc);
String str1 = "hello world";
String str2 = new String("hello world");
String str3 = "hello world";
String str4 = new String("hello world");
System.out.println("hello world: str1==str2 ==>");
System.out.println(str1 == str2); // false
System.out.println("hello world: str1==str3 ==>");
System.out.println(str1 == str3); // true
System.out.println("hello world: str2==str4 ==>");
System.out.println(str2 == str4); //false
System.out.println("hello world: str2.equals(str4) ==>");
System.out.println(str2.equals(str4)); //true
//String str1 = "hello world"; å String str3 = "hello world"; é½å¨ç¼è¯æé´çæäºåé¢å¸¸éå符å·å¼ç¨ï¼
// è¿è¡æé´åé¢å¸¸é "hello world" 被åå¨å¨è¿è¡æ¶å¸¸éæ± ï¼å½ç¶åªä¿åäºä¸ä»½ï¼ã
// éè¿è¿ç§æ¹å¼æ¥å° String 对象è·å¼ç¨ç»å®çè¯ï¼JVM æ§è¡å¼æä¼å
å¨è¿è¡æ¶å¸¸éæ± æ¥æ¾æ¯å¦åå¨ç¸åçåé¢å¸¸éï¼
// 妿åå¨ï¼åç´æ¥å°å¼ç¨æåå·²ç»åå¨çåé¢å¸¸éï¼å¦åå¨è¿è¡æ¶å¸¸éæ± å¼è¾ä¸ä¸ªç©ºé´æ¥åå¨è¯¥åé¢å¸¸éï¼å¹¶å°å¼ç¨æå该åé¢å¸¸éãã
//伿å¨ç¥ï¼éè¿ new å
³é®åæ¥çæå¯¹è±¡æ¯å¨å åºè¿è¡çï¼èå¨å åºè¿è¡å¯¹è±¡çæçè¿ç¨æ¯ä¸ä¼å»æ£æµè¯¥å¯¹è±¡æ¯å¦å·²ç»åå¨çã
// å æ¤éè¿ new æ¥å建对象ï¼å建åºçä¸å®æ¯ä¸åç对象ï¼å³ä½¿å符串çå
容æ¯ç¸åçã
// String s1 = "abc"; // 叏鿱
// String s2 = new String("abc"); // å å
åä¸
// System.out.println(s1==s2); // false 两个对象çå°åå¼ä¸ä¸æ ·ã
// System.out.println(s1.equals(s2)); // true
//java ä¸å¸¸éä¼åæºå¶ï¼ç¼è¯æ¶ s1 å·²ç»æä¸º abc å¨å¸¸éæ± ä¸æ¥æ¾å建ï¼s2 ä¸éè¦åå建ã
// String s1="a"+"b"+"c";
// String s2="abc";
// System.out.println(s1==s2); // true
// System.out.println(s1.equals(s2)); // true
//å
å¨å¸¸éæ± ä¸å建 ab ï¼å°åæå s1, åå建 abc ï¼æå s2ã
// å¯¹äº s3ï¼å
å建StringBuilderï¼æ StringBufferï¼å¯¹è±¡ï¼
// éè¿ append è¿æ¥å¾å° abc ,åè°ç¨ toString() 转æ¢å¾å°çå°åæå s3ã
// æ
(s3==s2) 为 falseã
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2); // false
System.out.println(s3.equals(s2)); // true
}
public static void cancattest(){
System.out.println();
String str1 = "a".concat("b").concat("c");
String str2 = "a"+"b"+"c";
String str3 = "abc";
String str4 = new String("abc");
System.out.println(str1 == str2); //è¿è¡ç»æä¸ºfalse
System.out.println(str1 == str3); //è¿è¡ç»æä¸ºfalse
System.out.println(str2 == str4); //è¿è¡ç»æä¸ºfalse
System.out.println(str2 == str3); //è¿è¡ç»æä¸ºture
System.out.println(str1.equals(str4)); //è¿è¡ç»æä¸ºtrue
// å 为 == æ¯è¾çæ¯ä¸¤ä¸ªå¯¹è±¡çå°åå¼ï¼equals() æ¯è¾çæ¯åé¢å¼ã
// é£ä¹ concat æ¹æ³å + å·çåºå«å¨è¿éæä½ç°äºï¼æä»¬æ¥çconcatæ¹æ³çæºç å¯ä»¥çå°ï¼
// 宿¯éè¿å¤å¶æ°ç»å¨éè¿ char æ°ç»è¿è¡æ¼æ¥çæä¸ä¸ªæ°çå¯¹è±¡ï¼æä»¥å°åå¼ä¼æåå¨ï¼è + å·ä¸ä¼
}
}
//SN(åºå·) æ¹æ³æè¿°
//1 char charAt(int index)
//è¿åæå®ç´¢å¼å¤ç char å¼ã
//2 int compareTo(Object o)
//æè¿ä¸ªå符串åå¦ä¸ä¸ªå¯¹è±¡æ¯è¾ã
//3 int compareTo(String anotherString)
//æåå
¸é¡ºåºæ¯è¾ä¸¤ä¸ªå符串ã
//4 int compareToIgnoreCase(String str)
//æåå
¸é¡ºåºæ¯è¾ä¸¤ä¸ªå符串ï¼ä¸èè大å°åã
//5 String concat(String str)
//å°æå®åç¬¦ä¸²è¿æ¥å°æ¤å符串çç»å°¾ã
//6 boolean contentEquals(StringBuffer sb)
//å½ä¸ä»
å½åç¬¦ä¸²ä¸æå®çStringBufferæç¸å顺åºçå符æ¶åè¿åçã
//7 static String copyValueOf(char[] data)
//è¿åæå®æ°ç»ä¸è¡¨ç¤ºè¯¥å符åºåç Stringã
//8 static String copyValueOf(char[] data, int offset, int count)
//è¿åæå®æ°ç»ä¸è¡¨ç¤ºè¯¥å符åºåç Stringã
//9 boolean endsWith(String suffix)
//æµè¯æ¤å符串æ¯å¦ä»¥æå®çåç¼ç»æã
//10 boolean equals(Object anObject)
//å°æ¤åç¬¦ä¸²ä¸æå®ç对象æ¯è¾ã
//11 boolean equalsIgnoreCase(String anotherString)
//å°æ¤ String ä¸å¦ä¸ä¸ª String æ¯è¾ï¼ä¸èè大å°åã
//12 byte[] getBytes()
// 使ç¨å¹³å°çé»è®¤å符éå°æ¤ String ç¼ç 为 byte åºåï¼å¹¶å°ç»æåå¨å°ä¸ä¸ªæ°ç byte æ°ç»ä¸ã
//13 byte[] getBytes(String charsetName)
//ä½¿ç¨æå®çå符éå°æ¤ String ç¼ç 为 byte åºåï¼å¹¶å°ç»æåå¨å°ä¸ä¸ªæ°ç byte æ°ç»ä¸ã
//14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
//å°åç¬¦ä»æ¤å符串å¤å¶å°ç®æ å符æ°ç»ã
//15 int hashCode()
//è¿åæ¤å符串çåå¸ç ã
//16 int indexOf(int ch)
//è¿åæå®åç¬¦å¨æ¤å符串ä¸ç¬¬ä¸æ¬¡åºç°å¤çç´¢å¼ã
//17 int indexOf(int ch, int fromIndex)
//è¿å卿¤å符串ä¸ç¬¬ä¸æ¬¡åºç°æå®å符å¤çç´¢å¼ï¼ä»æå®çç´¢å¼å¼å§æç´¢ã
//18 int indexOf(String str)
// è¿åæå®ååç¬¦ä¸²å¨æ¤å符串ä¸ç¬¬ä¸æ¬¡åºç°å¤çç´¢å¼ã
//19 int indexOf(String str, int fromIndex)
//è¿åæå®ååç¬¦ä¸²å¨æ¤å符串ä¸ç¬¬ä¸æ¬¡åºç°å¤çç´¢å¼ï¼ä»æå®çç´¢å¼å¼å§ã
//20 String intern()
// è¿åå符串对象çè§èå表示形å¼ã
//21 int lastIndexOf(int ch)
// è¿åæå®åç¬¦å¨æ¤åç¬¦ä¸²ä¸æå䏿¬¡åºç°å¤çç´¢å¼ã
//22 int lastIndexOf(int ch, int fromIndex)
//è¿åæå®åç¬¦å¨æ¤åç¬¦ä¸²ä¸æå䏿¬¡åºç°å¤çç´¢å¼ï¼ä»æå®çç´¢å¼å¤å¼å§è¿è¡ååæç´¢ã
//23 int lastIndexOf(String str)
//è¿åæå®ååç¬¦ä¸²å¨æ¤åç¬¦ä¸²ä¸æå³è¾¹åºç°å¤çç´¢å¼ã
//24 int lastIndexOf(String str, int fromIndex)
// è¿åæå®ååç¬¦ä¸²å¨æ¤åç¬¦ä¸²ä¸æå䏿¬¡åºç°å¤çç´¢å¼ï¼ä»æå®çç´¢å¼å¼å§ååæç´¢ã
//25 int length()
//è¿åæ¤å符串çé¿åº¦ã
//26 boolean matches(String regex)
//åç¥æ¤å符串æ¯å¦å¹é
ç»å®çæ£å表达å¼ã
//27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
//æµè¯ä¸¤ä¸ªå符串åºåæ¯å¦ç¸çã
//28 boolean regionMatches(int toffset, String other, int ooffset, int len)
//æµè¯ä¸¤ä¸ªå符串åºåæ¯å¦ç¸çã
//29 String replace(char oldChar, char newChar)
//è¿åä¸ä¸ªæ°çå符串ï¼å®æ¯éè¿ç¨ newChar æ¿æ¢æ¤å符串ä¸åºç°çææ oldChar å¾å°çã
//30 String replaceAll(String regex, String replacement)
//使ç¨ç»å®ç replacement æ¿æ¢æ¤å符串ææå¹é
ç»å®çæ£å表达å¼çåå符串ã
//31 String replaceFirst(String regex, String replacement)
// 使ç¨ç»å®ç replacement æ¿æ¢æ¤å符串å¹é
ç»å®çæ£å表达å¼ç第ä¸ä¸ªåå符串ã
//32 String[] split(String regex)
//æ ¹æ®ç»å®æ£å表达å¼çå¹é
æåæ¤å符串ã
//33 String[] split(String regex, int limit)
//æ ¹æ®å¹é
ç»å®çæ£åè¡¨è¾¾å¼æ¥æåæ¤å符串ã
//34 boolean startsWith(String prefix)
//æµè¯æ¤å符串æ¯å¦ä»¥æå®çåç¼å¼å§ã
//35 boolean startsWith(String prefix, int toffset)
//æµè¯æ¤åç¬¦ä¸²ä»æå®ç´¢å¼å¼å§çåå符串æ¯å¦ä»¥æå®åç¼å¼å§ã
//36 CharSequence subSequence(int beginIndex, int endIndex)
// è¿åä¸ä¸ªæ°çå符åºåï¼å®æ¯æ¤åºåçä¸ä¸ªååºåã
//37 String substring(int beginIndex)
//è¿åä¸ä¸ªæ°çå符串ï¼å®æ¯æ¤å符串çä¸ä¸ªåå符串ã
//38 String substring(int beginIndex, int endIndex)
//è¿åä¸ä¸ªæ°å符串ï¼å®æ¯æ¤å符串çä¸ä¸ªåå符串ã
//39 char[] toCharArray()
//å°æ¤å符串转æ¢ä¸ºä¸ä¸ªæ°çå符æ°ç»ã
//40 String toLowerCase()
//使ç¨é»è®¤è¯è¨ç¯å¢çè§åå°æ¤ String ä¸çææå符é½è½¬æ¢ä¸ºå°åã
//41 String toLowerCase(Locale locale)
// 使ç¨ç»å® Locale çè§åå°æ¤ String ä¸çææå符é½è½¬æ¢ä¸ºå°åã
//42 String toString()
// è¿åæ¤å¯¹è±¡æ¬èº«ï¼å®å·²ç»æ¯ä¸ä¸ªå符串ï¼ï¼ã
//43 String toUpperCase()
//使ç¨é»è®¤è¯è¨ç¯å¢çè§åå°æ¤ String ä¸çææå符é½è½¬æ¢ä¸ºå¤§åã
//44 String toUpperCase(Locale locale)
//使ç¨ç»å® Locale çè§åå°æ¤ String ä¸çææå符é½è½¬æ¢ä¸ºå¤§åã
//45 String trim()
//è¿åå符串ç坿¬ï¼å¿½ç¥å导空ç½åå°¾é¨ç©ºç½ã
//46 static String valueOf(primitive data type x)
//è¿åç»å®data typeç±»åxåæ°çå符串表示形å¼ã
//47 contains(CharSequence chars)
//夿æ¯å¦å
嫿å®çå符系åã
//48 isEmpty()
//夿å符串æ¯å¦ä¸ºç©ºã