什么是字符串?字面意义上的字符串是一系列字符。它是Java中的原始数据类型。
为什么要使用字符串?
现代计算机科学的主要功能之一是处理人类语言。
与数字对数学的重要性类似,语言符号对计算机也很重要。尽管计算机用户可能看不见它,但计算机在后台处理语言的方式与计算器一样精确。帮助对话框提供了说明。菜单提供选择。数据显示可显示状态等。
作为一个Java程序员,存储和处理语言的主要工具之一就是String类。
字符串语法示例
现在,让我们开始一些语法。
字符串是一个字符数组,表示为:
char[] arrSample = {'R', 'O', 'S', 'E'}; String strSample_1 = new String (arrSample);
更简单的定义String,如下:
String strSample_2 = "ROSE";
String类继承了Object类
字符串串联:
串联是两个或多个字符串的连接。
我们有两个字符串str1 =”Rock”和str2 =” Star”
如果将这两个字符串相加,则结果应为str3 =“ RockStar”。
下面的代码片段,介绍执行字符串连接的两种方法。
首先是使用String类的”concat “方法,其次是使用算术”+”运算符。两者结果相同。
String str1 = "Rock"; String str2 = "Start"; String str3 = str1.concat(str2); String str4 = str1+str2;
重要的Java字符串方法:
字符串“length”方法
您将如何确定给定String的长度?我提供了一种称为“length”的方法。将其用于需要查找长度的字符串。
public class Sample_String { public static void main(String[] args) { String str_Sample = "RockStar"; System.out.println("字符串长度是: " + str_Sample.length()); } }
输出:
字符串长度:8
字符串“ indexOf”和“charAt”方法
如果我知道长度,我将如何找到哪个字符在哪个位置?简而言之,我如何找到一个字符的索引?
public class Sample_String { public static void main(String[] args) { String str_Sample = "RockStar"; System.out.println("索引位置5的字符是: " + str_Sample.charAt(5)); System.out.println("字符 'S' 索引位置是: " + str_Sample.indexOf('S')); } }
输出:
索引位置5的字符是:t
字符 ‘S’ 索引位置是:4
字符串“ CompareTo”方法
1.返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值
String a1 = "a"; String a2 = "c"; System.out.println(a1.compareTo(a2));//结果为-2
2.即参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,
String a1 = "aa"; String a2 = "ad"; System.out.println(a1.compareTo(a2));//结果为-3
3.如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值
String a1 = "aa"; String a2 = "aa12345678"; System.out.println(a1.compareTo(a2));//结果为-8
4.compareToIgnoreCase忽略大小写
不考虑大小写,按字典顺序比较两个字符串。此方法返回一个整数,它的正负号是调用 compareTo 的正负号,调用时使用了字符串的规范化版本,其大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。
注意,此方法不 考虑语言环境,因此可能在某些特定的语言环境中产生不理想的排序。java.text 包提供 Collators 来完成语言环境敏感的排序。
5.int型可以直接比较,所以没有用到compareTo比较,如果声明的是Date、String、Integer、或者其他的,可以直接使用compareTo比较,
Integer n1 = 5; Integer n2 = 6; System.out.println(n1.compareTo(n2));//-1
字符串“contain”方法
我部分知道该字符串应包含的内容,如何确认该字符串是否包含我指定的字符序列?
使用方法“包含”并指定您需要检查的字符。
当且仅当此字符串包含指定的char值序列时,才 返回true。
public class Sample_String { public static void main(String[] args) { String str_Sample = "RockStar"; System.out.println("RockStar是否包含 'tar': " + str_Sample.contains("tar")); } }
字符串“ endsWith”方法
如何确认字符串是否以特定的后缀结尾?使用“ endsWith”方法并在参数中指定后缀。
如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回true。
字符串“ replaceAll”和“ replaceFirst”方法
我想在多个地方修改String并替换String的几个部分吗?
Java字符串Replace,replaceAll和replaceFirst方法。您可以在参数中指定要替换的字符串部分以及替换的字符串。
public class Sample_String { public static void main(String[] args) { String str_Sample = "RockStar"; System.out.println("Replace : " + str_Sample.replace("Rock", "Duke")); System.out.println("replaceAll : " + str_Sample.replaceAll("Rock", "Duke")); System.out.println("replaceFirst : " + str_Sample.replaceFirst("Rock", "Duke")); } }
字符串Java“ tolowercase”和Java“ touppercase”方法
我希望我的整个字符串以小写还是大写显示?
只需对需要转换的字符串使用“ toLowercase”或“ ToUpperCase”方法。
public class Sample_String { public static void main(String[] args) { String str_Sample = "RockStar"; System.out.println("转换为小写: " + str_Sample.toLowerCase()); System.out.println("转换为大写: " + str_Sample.toUpperCase()); } }
Output:
转换为小写: rockstar 转换为大写: ROCKSTAR
注意事项:
- String是final class; 即,一旦创建,该值就无法更改。因此String对象被称为不可变的。
- Java虚拟机(JVM)专门为称为String常量池的Strings创建一个内存位置。这就是为什么可以在不使用’new’关键字的情况下初始化String的原因。
- 字符串类属于java.lang.String。但是不需要导入此类。Java平台自动提供它们。
- 字符串引用可以被覆盖,但是不能删除内容; 即,如果
String h1 = “hello”;
h1 = “hello” + “world”;
那么“ hello”字符串不会被删除。它只是失去了控制。
- 多个引用可以用于同一String,但是它会在同一地方出现; 即,如果
String h1 = “hello”;
String h2 = “hello”;
String h3 = “hello”;
那么只会在内存中为字符串”hello”创建一个池,并带有3个引用h1,h2,h3
如果在””中加上数字,则该数字将成为字符串,而不再是数字。
String S1 = “数字为:” + “123” + “456”;
System.out .println(S1);
然后它将打印:数字为:123456
如果初始化是这样的:
String S1 = “数字为:” +(123 + 456);
System.out .println(S1);
那么它会打印:数字为:579