Java 字符串操作示例
Java 中的字符串是什么?
从字面意义上讲,字符串就是一系列字符。等等,你说的是字符,这不就是 Java 中的一个基本数据类型吗?是的,所以从技术上讲,基本的 Java 字符串本质上就是字符数组。
所以我上面提到的“ROSE”字符串可以表示为:
为什么要使用字符串?
现代计算机科学的主要功能之一是处理人类语言。
就像数字对数学很重要一样,语言符号对意义和决策也很重要。尽管计算机用户可能看不见,但计算机在后台处理语言,其精确度和准确性堪比计算器。帮助对话框提供说明。菜单提供选项。数据显示状态、错误和语言的实时变化。
作为一名 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 类。
字符串拼接
拼接是将两个或多个字符串连接起来。
看看下面的图片:
我们有两个字符串 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 类一些问题,看看它能否回答。
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
关于字符串就这些了!