Menu Close

Java字符串操作

什么是字符串?字面意义上的字符串是一系列字符。它是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"));
    }
}

Output:

Replace : DukeStar
replaceAll : DukeStar
replaceFirst : DukeStar

字符串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

 

Posted in Java

发表评论

相关链接