字符串方法Java  



Java的

在Java編程語言中,字符串不過是字符序列。 它是使用最廣泛的對象。 Java String類具有許多用於各種操作的方法。 它是不可變的,這意味著它的值無法更改。 字符串等效於字符數組。

用Java創建字符串  

我們可以使用2種不同的方法創建一個字符串:

  • 使用字符串文字
  • 使用新關鍵字

使用字符串文字創建字符串

這是創建廣告素材的最直接方法 在Java中。 我們可以通過將值括在雙引號中來創建字符串。 在這裡,類型為String的變量“ value”包含名為“ Java language”的字符串

String value = "Java language";

當我們創建字符串文字時,JVM首先檢查“字符串常量池”是否存在該字符串。 如果不存在,JVM將創建一個新的字符串實例,否則將僅返回對池實例的引用。 例如,在以下情況下,兩個字符串對像都具有相同的值。 因此,僅創建了1個對象(即s1),並且s2將引用s1。 這意味著,無論我們創建了多少個具有相同值的字符串變量,都將在字符串常量池中僅創建1個實例。

“字符串常量池”不過是用於保存字符串對象的特殊內存。

String s1 = "Java language"; 
String s2 = "Java language";

Java中的字符串

使用new關鍵字創建一個字符串

當我們要讓兩個不同的對象持有相同的字符串值時,我們可以使用 關鍵字,如下所述。 在這種情況下,JVM在堆內存中創建2個不同的字符串對象

String s1 = new String("Java");
String s2 = new String("Java");

Java中的字符串  

字符串方法Java  

java.lang.String類支持各種用於不同字符串操作的方法,如下所述:

也可以看看
Java線程
方法產品介紹 - 點擊查看參數
char charAt(int index)返回輸入字符串指定索引處的字符index-字符串的索引值
int codePointAt(int索引)返回指定索引處字符的unicode值index-字符串的索引值
int codePointBefore(int索引)返回指定索引之前的字符的unicode值index-字符串的索引值
int compareTo(String anotherstring)根據字符的unicode值比較2個字符串,如果在參數字符串之前,則返回負值,否則返回正值。 如果兩個字符串相等,則返回值為0anotherstring-要與字符串對象進行比較的字符串
int compareToIgnoreCase(另一個字符串)與compareTo方法類似,除了它忽略大小寫。anotherstring-要與字符串對象進行比較的字符串
字符串concat(String str)連接兩個字符串值str-要與字符串對象值連接的字符串
布爾包含(CharSequence c)檢查字符串是否包含指定的字符序列,如果存在則返回truec-在字符串中查找的字符序列
布爾contentEquals(CharSequence c)檢查字符串是否包含確切的字符序列,如果存在則返回truec-在字符串中查找的字符序列
布爾contentEquals(StringBuffer sb)檢查字符串是否包含指定的字符串緩衝區,如果存在則返回truesb-字符串緩衝區內容
boolean endsWith(帶字符串後綴)檢查字符串是否以指定的後綴結尾,如果存在則返回true後綴-簽入字符串的後綴
布爾值equals(Object obj)檢查字符串對象與傳遞的對象的相似性,如果相等則返回trueobj-要比較的對象
boolean equalsIgnoreCase(String str)通過忽略大小寫比較兩個字符串,如果兩個字符串相等,則返回truestr-要比較的字符串
int indexOf(int ch)返回字符串中第一次出現的指定unicode字符的索引ch-字符的unicode值
int indexOf(String str)返回字符串中指定子字符串首次出現的索引str-字符串中存在的子字符串值
boolean isBlank()如果字符串為空或僅包含空格,則返回true
boolean isEmpty()如果字符串為空(即長度為0),則返回true
int lastindexOf(int ch)返回字符串中最後一次出現的指定unicode字符的索引ch-字符的unicode值
int lastindexOf(String str)返回字符串中指定子字符串最後一次出現的索引str-字符串中存在的子字符串值
int length()返回字符串的長度
布爾匹配(字符串正則表達式)如果字符串與指定的正則表達式匹配,則返回trueregex-要檢查的正則表達式
字符串重複(整數)根據計數連接字符串count-連接輸入字符串的次數
字符串替換(char oldchar,char newchar)通過用新字符替換所有出現的字符來返回新字符串oldchar-要替換的字符
newchar-要替換的字符
字符串[]分割(字符串正則表達式)根據正則表達式拆分字符串。 返回數組regexp-分隔符,用於分割字符串
String []分割(String regexp,int限制)根據正則表達式和需要應用的次數拆分字符串regexp-分隔符,用於分割字符串
限制-必須應用模式的次數
boolean startsWith(字符串前綴)檢查給定的字符串是否以指定的前綴開頭。 如果存在,則返回trueprefix-檢入字符串的前綴
boolean startsWith(String prefix,int tooffset)根據tooffset參數檢查給定的字符串是否以指定的前綴開頭,如果存在則返回trueprefix-檢入字符串的前綴
tooffset-需要從其開始搜索的索引
字符串strip()返回一個字符串,其中刪除了所有空格,包括前導和尾隨
字符串stripLeading()返回已刪除所有前導空格的字符串的子字符串
字符串stripTrailing()返回已刪除所有尾隨空格的字符串的子字符串
CharSequence subSequence(int startIndex,int endIndex)根據開始和結束索引返回字符串的字符序列startIndex-必須從中檢索子字符串的索引
endIndex-必須檢索子字符串之前的索引
字符串subString(int startIndex)根據起始索引返回字符串的子字符串startIndex-必須從中檢索子字符串的索引
字符串subString(int startIndex,int endIndex)根據開始和結束索引返回字符串的子字符串startIndex-必須從中檢索子字符串的索引
endIndex-必須檢索子字符串之前的索引
char []轉換為CharArray()將字符串轉換為字符數組
字符串toLowerCase()將字符串中的所有字符轉換為小寫
字符串toLowerCase(語言環境的語言環境)根據語言環境規則將字符串中的所有字符轉換為小寫語言環境-要應用的語言環境規則
字符串toString()返回字符串本身
字符串toUpperCase()將字符串中的所有字符轉換為大寫
字符串toUpperCase(語言環境的語言環境)根據語言環境規則將字符串中的所有字符轉換為大寫語言環境-要應用的語言環境規則
字符串trim()返回一個字符串,其中刪除了所有前導和尾隨空格
字符串格式字符串(字符串格式,對象...參數)根據格式和參數返回格式化的字符串格式-格式說明符
args-格式說明符引用的參數
字符串連接(CharSequence分隔符,CharSequence ...元素)使用定界符連接字符序列元素定界符-要加入的定界符
elements-要加入的字符串元素
字符串valueOf(布爾b)返回布爾參數的字符串表示形式。 如果傳遞true,則返回trueb-布爾值true或false
字符串valueOf(char c)返回字符參數的字符串表示形式c-字符
字符串valueOf(char []數據)返回字符數組參數的字符串表示形式數據-字符數組
字符串valueOf(double d)返回double參數的字符串表示形式d-雙重值
字符串valueOf(f浮點數f)返回float參數的字符串表示形式f-浮點值
字符串valueOf(int i)返回整數參數的字符串表示形式i-整數值
字符串值IOf(長l)返回long參數的字符串表示形式l-長值
字符串valueOf(Object obj)返回對象參數的字符串表示形式obj-對象
字符串valueOf(char []數據,int偏移量,int計數)根據偏移量和計數返回特定子字符串字符數組參數的字符串表示形式數據-字符數組
偏移量-起始索引
count-子字符串的長度
也可以看看
Java中的Callable and Future接口

示例:從數組字符創建字符串的Java程序  

在下面的示例中,我們將 排列 使用new關鍵字將字符轉換為Java中的字符串。

public class StringDemo1 {

  public static void main(String[] args) {
    char[] c = {'j','a','v','a'};
    String s = new String(c);
    System.out.println(s);
    
  }

}
Output:
java

示例:使用length(),charAt()和indexOf()方法  

下面的示例顯示如何在特定索引處檢索字符,獲取字符串的長度以及在特定字符處檢索索引。

public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("The character at index 6 is : " + s1.charAt(6));
    System.out.println("The length of the input string is : " + s1.length());
    System.out.println("The index of letter 'v' is : " + s1.indexOf('v'));
  }

}
Output:
The character at index 6 is : u
The length of the input string is : 13
The index of letter 'v' is : 2

示例:使用compareTo(),contentEquals()和contains()  

此示例顯示了Java中2個字符串的比較

  1. compareTo()在此返回一個正整數,因為輸入字符串在參數字符串之後。
  2. compareToIgnoreCase()返回0,因為無論大小寫,兩個字符串都相等。
  3. contains()返回true,因為輸入字符串包含參數字符串
  4. contentEquals()返回false,因為輸入字符串不包含確切的參數字符串。
public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("Comparison of input string with argument is : " + s1.compareTo("C++"));
    System.out.println("Comparison of input string with argument ignoring case is : " + s1.compareToIgnoreCase("JAVA TUTORIAL"));
    System.out.println("Output of contains method: " + s1.contains("tutorial"));
    System.out.println("Output of contentEquals method: " + s1.contentEquals("Java"));
    }
}
Output:
Comparison of input string with argument is : 7
Comparison of input string with argument ignoring case is : 0
Output of contains method: true
Output of contentEquals method: false

示例:使用equals()  

第一個輸出為false,因為即使內容相同,大小寫也不匹配。 由於內容和大小寫匹配,因此第二個輸出為true。

也可以看看
之字形轉換

第三輸出為假,因為兩個內容都不相同。

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    String s2 = "Java Tutorial";
    String s3 = "java tutorial";
    String s4 = "Tutorial cup";
    System.out.println(s1.equals(s2));
    System.out.println(s1.equals(s3));
    System.out.println(s1.equals(s4));
  }

}
Output:
false
true
false

示例:字符串的串聯  

我們可以使用concat()連接Java中的2個字符串 Java的方法 字符串類。 “ +”還用於連接通常在打印語句中使用的2個或更多字符串。 串聯2個字符串時,字符串之間不包含空格。 在下面的示例中,字符串s3包含s1和s2的串聯值,該值與print語句中的新字符串一起使用。

我們還可以使用join()方法連接Java中的2個字符串。 這會將參數中傳遞的單詞與指定的分隔符連接起來。

public class StringConcat {

  public static void main(String[] args) {
    String s1 = "Hello,";
    String s2 = "how are you";
    String s3 = s1.concat(s2);
    System.out.println(s3 + " today");
    System.out.println(s1.join(",", "welcome","to","tutorialcup"));
  }

}
Output:
Hello,how are you today
welcome,to,tutorialcup

示例:在大寫和小寫之間轉換字符串的Java程序  

public class StringCase {

  public static void main(String[] args) {
    String s1 = "Welcome to tutorialcup";
    System.out.println("Convert to lower case: " + s1.toLowerCase());
    System.out.println("Convert to upper case: " + s1.toUpperCase());

  }

}
Output:
Convert to lower case: welcome to tutorialcup
Convert to upper case: WELCOME TO TUTORIALCUP

示例:在Java中使用子字符串  

我們可以使用 子串 方法。 索引值從0開始。

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    System.out.println(s1.substring(3));
    System.out.println(s1.substring(1, 10));
  }

}
Output:
a tutorial
ava tutor

示例:使用拆分和替換  

拆分是Java中String的另一種最常用的方法。 在此示例中,我們首先使用定界符“”分割輸入字符串。 因此,這將分別打印每個單詞。 接下來,我們基於定界符進行拆分,但將limit指定為2,這意味著它僅拆分為兩個字符串數組值。

也可以看看
什麼是Java中的子字符串

在替換的第一個示例中,我們替換了單個字符。 接下來,我們替換字符序列。

public class StringDemo4 {

  public static void main(String[] args) {
    String str1 = "Welcome to java programming";
    System.out.println("Split output using delimiter:");
    //Split using only delimiter
    String[] arrval = str1.split(" ");
    for(int i=0;i<arrval.length;i++) {
      System.out.println(arrval[i]);
    }
    System.out.println("\nSplit output using delimiter and limit:");
    //Split using delimiter and limit
    String[] arrval2 = str1.split(" ", 2);
    for(int i=0;i<arrval2.length;i++) {
      System.out.println(arrval2[i]);
    }
    
    System.out.println("\nReplace output with character:");
    //Replace character
    String str2 = str1.replace('j', 'J');
    System.out.println(str2);
    System.out.println("\nReplace output with character sequence:");
    String str3 = str1.replace("java", "javascript");
    System.out.println(str3);
  }

}


Output:
Split output using delimiter:
Welcome
to
java
programming

Split output using delimiter and limit:
Welcome
to java programming

Replace output with character:
Welcome to Java programming

Replace output with character sequence:
Welcome to javascript programming

示例:Java格式字符串  

我們可以格式化任何 資料類型 使用format方法轉換為字符串。 在這裡,我們以string(“%s”),float(%f“)和boolean(”%b“)為例。

public class StringFormat {

  public static void main(String[] args) {
    String str = "Java";
    String formatstring1 = String.format("Programming language is %s",str);
    String formatstring2 = String.format("Float value is %f", 55.6789);
    String formatstring3 = String.format("Boolean value is %b", true);
    System.out.println(formatstring1);
    System.out.println(formatstring2);
    System.out.println(formatstring3);
  }

}
Output:
Programming language is Java
Float value is 55.678900
Boolean value is true

結論  

在本教程中,您學習了Java中的String,創建它的不同方法,不同的string方法以及示例。

參考文獻