Java 字符串操作示例

Java 中的字符串是什么?

从字面意义上讲,字符串就是一系列字符。等等,你说的是字符,这不就是 Java 中的一个基本数据类型吗?是的,所以从技术上讲,基本的 Java 字符串本质上就是字符数组。

所以我上面提到的“ROSE”字符串可以表示为:

Java String

为什么要使用字符串?

现代计算机科学的主要功能之一是处理人类语言。

就像数字对数学很重要一样,语言符号对意义和决策也很重要。尽管计算机用户可能看不见,但计算机在后台处理语言,其精确度和准确性堪比计算器。帮助对话框提供说明。菜单提供选项。数据显示状态、错误和语言的实时变化。

作为一名 Java 程序员,您存储和处理语言的主要工具之一将是 String 类。

字符串语法示例

现在,让我们来谈谈语法,毕竟,我们需要用 Java 代码来编写它,不是吗?

字符串是字符数组,表示为

//String is an array of characters
char[] arrSample = {'R', 'O', 'S', 'E'};
String strSample_1 = new String (arrSample);

从技术上讲,上述字符串定义如下:

= new (argument);

现在我们不能总是将字符串写成数组;因此,我们可以在 Java 中这样定义字符串:

//Representation of String
String strSample_2 = "ROSE";

从技术上讲,上述表示为:

= ;

String 类 Java 扩展Object 类。

字符串拼接

拼接是将两个或多个字符串连接起来。

看看下面的图片:

String Syntax Examples

我们有两个字符串 str1 = “Rock” 和 str2 = “Star”

如果我们把这两个字符串加起来,应该得到结果 str3 = “RockStar”。

查看下面的代码片段,它解释了执行字符串拼接的两种方法。

第一种是使用 String 类的“concat”方法,第二种是使用算术“+”运算符。两者产生相同的输出。

public class Sample_String{
  public static void main(String[] args){
//String Concatenation
String str1 = "Rock";
String str2 = "Star";
//Method 1 : Using concat
String str3 = str1.concat(str2);
System.out.println(str3);
//Method 2 : Using "+" operator
String str4 = str1 + str2;
System.out.println(str4);
}
}

预期输出

RockStar
RockStar

重要的 Java 字符串方法

Java string methods

让我们问 Java String 类一些问题,看看它能否回答。

String “Length” 方法

如何确定给定字符串的长度?我提供了一个名为“length”的方法。将其应用于您需要查找长度的字符串。

public class Sample_String{
  public static void main(String[] args){  //Our sample string for this tutorial
  String str_Sample = "RockStar";
  //Length of a String
  System.out.println("Length of String: " + str_Sample.length());}}

预期输出

Length of String: 8

String “indexOf” 方法

如果我知道长度,我怎么知道哪个字符在哪个位置?简而言之,如何找到字符的索引?

你自己回答了,伙计,有一个“indexOf”方法可以帮助你确定你指定的特定字符的位置。

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));
//Index of a given character
System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}

预期输出

Character at position 5: t
Index of character 'S': 4

String “charAt” 方法

与上面的问题类似,给定索引,我怎么知道该位置的字符是什么?

又是一个简单的问题!使用“charAt”方法并提供您需要查找字符的索引。

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));}}

预期输出

Character at position 5: t

String “CompareTo” 方法

我想检查由某个方法生成的字符串是否等于我要验证的内容?我该如何比较两个字符串?

使用“compareTo”方法并指定您想要比较的字符串。

如果您不希望结果区分大小写,请使用“compareToIgnoreCase”。

如果参数字符串等于此字符串,则结果为 0;如果此字符串在词典顺序上小于字符串参数,则结果小于 0;如果此字符串在词典顺序上大于字符串参数,则结果大于 0。

public class Sample_String{
  public static void main(String[] args){//Compare to a String
String str_Sample = "RockStar";
  System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
  //Compare to - Ignore case
  System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}

预期输出

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

String “Contain” 方法

我只知道字符串应该包含什么,我如何确认字符串是否包含我指定的字符序列?

使用“contains”方法并指定您需要检查的字符。

当且仅当此字符串包含指定的 char 值序列时,返回 true

public class Sample_String{
  public static void main(String[] args){  //Check if String contains a sequence
String str_Sample = "RockStar";
  System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}

预期输出

Contains sequence 'tar': true

String “endsWith” 方法

如何确认字符串是否以特定后缀结尾?你又回答了。使用“endsWith”方法并在参数中指定后缀。

如果参数所代表的字符序列是此对象所代表的字符序列的后缀,则返回 true

public class Sample_String{
  public static void main(String[] args){  //Check if ends with a particular sequence
String str_Sample = "RockStar";
  System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}

预期输出

EndsWith character 'r': true

String “replaceAll” & “replaceFirst” 方法

我想在多个地方修改我的字符串并替换字符串的几个部分?

Java String 替换、replaceAll 和 replaceFirst 方法。您可以在参数中指定要替换的字符串部分和替换字符串。

public class Sample_String{
  public static void main(String[] args){//Replace Rock with the word Duke
String str_Sample = "RockStar";
System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}

预期输出

Replace 'Rock' with 'Duke': DukeStar

String Java “tolowercase” & Java “touppercase” 方法

我想将我的整个字符串显示为小写或大写?

只需对需要转换的字符串使用“toLowercase()”或“ToUpperCase()”方法。

public class Sample_String{
  public static void main(String[] args){//Convert to LowerCase
String str_Sample = "RockStar";
System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase());
//Convert to UpperCase
System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}

预期输出

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

要点

  • String 是一个 Final 类;即一旦创建,其值就不能被修改。因此,String 对象被称为不可变的。
  • Java 虚拟机 (JVM) 为 String 创建一个称为字符串常量池的内存位置。因此,String 可以在没有 'new' 关键字的情况下进行初始化。
  • String 类属于java.lang.String 层次结构。但没有必要导入这个类。Java 平台会自动提供它们。
  • String 引用可以被覆盖,但那并不会删除内容;也就是说,如果

String h1 = “hello”;

h1 = “hello”+”world”;

那么“hello”字符串就不会被删除。它只是失去了它的句柄。

  • 多个引用可以用于同一个 String,但它会出现在同一个位置;也就是说,如果

String h1 = “hello”;

String h2 = “hello”;

String h3 = “hello”;

那么在内存中只会为 String “hello”创建一个池,有 3 个引用:h1、h2、h3。

  • 如果一个数字被引号引起来,那么它就变成了一个字符串,而不是数字了。也就是说,如果

String S1 =”The number is: “+ “123”+”456″;

System.out.println(S1);

那么它会打印:The number is: 123456

如果初始化是这样的:

String S1 = “The number is: “+(123+456);

System.out.println(S1);

那么它会打印:The number is:579

关于字符串就这些了!