字符串方法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类支持各种方法,这些方法用于不同的字符串操作,如下所述:

选项产品介绍参数
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(语言环境的语言环境)根据语言环境规则将字符串中的所有字符转换为大写语言环境-要应用的语言环境规则
字符串修剪()返回一个字符串,其中删除了所有前导和尾随空格
字符串格式字符串(字符串格式,对象...参数)根据格式和参数返回格式化的字符串格式-格式说明符
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程序

在下面的示例中,我们将 排列 使用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,这意味着它仅拆分为两个字符串数组值。

在替换的第一个示例中,我们替换了单个字符。 接下来,我们替换字符序列。

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方法以及示例。

参考