1. 程式人生 > 實用技巧 >SQL Server使用者修改密碼失敗(sa登陸失敗等問題)

SQL Server使用者修改密碼失敗(sa登陸失敗等問題)

String類【重點】

  • String類的簡要概述:

    java.langString 類代表字串,Java程式中的所有的字串文字,如”abc“都可以看作是String類的例項。程式當中的所有的雙引號字串,都是String類的物件。(沒有new,也是物件)

  • 字串的特點:

    1. 字串的內容永遠不可改變【重點】。
    2. 因為字串的內容永遠不可改變,所以字串是可以共享使用的。
    3. 字串效果上相當於char[]字元 陣列,但是底層原理是byte[]位元組陣列
//第二點
String str1 = "abc";//儲存在堆的字串常量池中
String str2 = "abc";
//記憶體當中"abc","abc"物件會被創建出來,而且"abc"物件只會被建立一次,記憶體當中只有一個"abc"物件被建立。
//此時str1和str2可以共享一個"abc"物件
String str3 = new String("abc");
String str4 = new String("abc");//儲存在堆中
//備註:JDK1.7之後的JVM將【執行時常量池】從方法區去移除了,在java堆(heap)中開闢空間用來儲存執行時常量池
//JDK1.8開始,取消了java方法區(metho area),取而代之的是原空間(metaspace)
//JDK1.8中字串常量池和執行時常量池邏輯上屬於方法區,實際上儲存在堆記憶體當中。

字串常量物件儲存在字串常量池中,目的是共享的。

  • 如:String str = "ABC";

字串非常量物件儲存在堆空間中。

  • 如: String str2 = new String("ABC");

建立String字串的3+1種方式

//三種構造方法:
public String();建立一個空白的字串,不包含任何內容
public String(char[] array);根據字元陣列的內容,來建立對應的字串。
public String(byte[] array);根據位元組陣列來建立對應的字串

//直接建立
String str= "abc";//右邊直接用雙引號
//備註:直接寫上雙引號,系統也會認定為字串物件。

列如

  //3+1建立字串物件的方式
        //使用空參構造方法建立字串物件
        String str = new String();//說明字串沒有任何內容
        System.out.println("第一個字串:"+str);
        //2、使用字元陣列建立字串物件
        char[] charArray = {'A','B','C'};
        String str2 = new String(charArray);
        System.out.println("第二個字串:"+str2);
        //3、根據位元組陣列建立字串物件   A---65
        byte[] byteArray = {65,66,67};
        String str3 = new String(byteArray);
        System.out.println("第三個字串:"+str3);
        //4、直接建立
        String str4 = "ABC";
        System.out.println("第四個字串:"+str4);


常用方法

public boolean equals(Object anObject);將此字串與指定的物件進行比較。
public boolean equalsIgnoreCase(String anotherString);將此字串與指定的物件進行比較,忽略大小寫。
//不但進行地址判斷,還進行內容判斷,只要符號其中一個條件就返回true
//建議:如果比較雙方:一個常量一個變數,推薦把常量字串放在前面,把變數放在後面
public int length();	返回字串的長度
public String concat(String str);	將指定大的字串連線到改字串的末尾
public char charAt(int index);	返回指定索引處的char值
public int indexOf(String str); 返回指定的字串第一次出現在該字串內的索引值,如果找到就返回字串第一個字元所在的索引值,如果沒有找到則返回-1
public String substring(int beginIndex); 返回一個字串,從bejinIndex開始擷取該字串到該字串的末尾
public String substring(int beginIndex,int endIndex); 返回一個新字串,它是此字串從beginIndex開始擷取到endIndex(不包含)的一個子字串。[beginIndex,endIndex)    
public char[] toCharArray(); 將此字串轉換成新的字串陣列
public byte[] getBytes(); 使用平臺預設的字符集將該字串編碼轉換成新的位元組陣列
public String replace(CharSequence target,CharSequence replacement); 將與targe匹配的字串是使用replacement字串替換掉,返回替換之後新的字串。
//:CharSequence是一個介面,也是一種引用型別,意思是可以接受字串資料型別
String replace(char oldChar, char newChar):返回一個新的字串,它是通過用 newChar 替換此字串中出現的所 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement):使用指定的字面值替換序列替換此字串所匹配字面值目標序列的子字串。
String replaceAll(String regex, String replacement):使用給定的 replacement 替換此字串所匹配給定的正則表示式的子字串。
String replaceFirst(String regex, String replacement):使用給定的 replacement 替換此字串匹配給定的正則表示式的第一個子字串。
boolean matches(String regex):告知此字串是否匹配給定的正則表示式。
String[] split(String regex):根據給定正則表示式的匹配拆分此字串。
String[] split(String regex, int limit):根據匹配給定的正則表示式來拆分此字串,最多不超過limit個,如果超過了,剩下的全部都放到最後一個元素中。