JavaRush /Java 博客 /Random-ZH /Java中的字符串类

Java中的字符串类

已在 Random-ZH 群组中发布
Java 中的String 类旨在处理 Java 中的字符串。Java 程序中定义的所有字符串文字(例如“abc”)都是 String 类的实例。让我们看看它的主要特征:
  1. 该类实现Serializable和接口CharSequence。由于它包含在包中java.lang,因此不需要导入。
  2. Java 中的String类是最终类,不能有子类。
  3. String 类是一个不可变类,这意味着它的对象在创建后就无法更改。对 String 对象的任何会产生 String 类对象的操作都会导致创建一个新对象。
  4. 由于其不变性,String 类对象是线程安全的,可以在多线程环境中使用。
  5. toStringJava中的每个对象都可以通过所有Java类继承自该类的方法转换为字符串Object
Java 中的字符串类 - 1

使用 Java 字符串

这是 Java 中最常用的类之一。它具有分析字符串中某些字符、比较和搜索字符串、提取子字符串、创建所有字符都转换为小写和大写的字符串副本等方法。String类的所有方法的列表可以在官方文档中找到。Java 还实现了一种简单的串联机制(连接字符串),将基元转换为字符串,反之亦然。让我们看一下在 Java 中使用 String 类的一些示例。

创建字符串

创建 String 类实例的最简单方法是为其分配字符串文字的值:
String s = "I love movies";
但是,String 类有许多构造函数,允许您:
  • 创建一个包含空字符串的对象
  • 创建字符串变量的副本
  • 基于字符数组创建字符串
  • 基于字节数组创建字符串(考虑编码)
  • ETC。

字符串加法

在 Java 中添加两个字符串非常简单,使用+. Java 允许您将变量和字符串文字相互添加:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
通过将 String 类的对象与其他类的对象相加,我们将后者简化为字符串形式。将其他类的对象转换为字符串表示形式是通过toString对象上的隐式方法调用来执行的。让我们通过以下示例来演示这一点:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

字符串比较

要比较字符串,可以使用以下方法equals()
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
当比较字符串时大小写对我们来说不重要时,我们需要使用以下方法equalsIgnoreCase()
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

将对象/基元转换为字符串

要将任何 Java 类或任何原始数据类型的实例转换为字符串表示形式,可以使用以下方法String.valueOf()
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

将字符串转换为数字

通常您需要将字符串转换为数字。原始类型包装类具有正是用于此目的的方法。所有这些方法都以单词 parse 开头。考虑下面将字符串转换为整数 ( Integer) 和小数 ( Double) 的情况:
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

将字符串集合转换为字符串表示形式

如果需要通过任意分隔符将某个字符串集合的所有元素转换为字符串表示形式,可以使用 Java String 类的以下方法:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
其中delimiter是元素分隔符,elements是字符串数组/字符串集合实例。让我们看一个示例,其中将字符串列表转换为字符串,并用分号分隔每个字符串:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

将字符串拆分为字符串数组

该操作由该方法执行。split(String regex) 分隔符是一个字符串正则表达式regex。在下面的示例中,我们将执行与上一个示例中执行的操作相反的操作:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

确定行中元素的位置

在Java语言中,String提供了一组方法来确定字符串中字符/子字符串的位置:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
在哪里:
  1. ch— 您正在寻找的符号 ( char)
  2. str- 搜索字符串
  3. fromIndex— 搜索元素的位置
  4. 方法indexOf- 返回找到的第一个元素的位置
  5. 方法lastIndexOf- 返回找到的最后一个元素的位置
如果未找到您要查找的元素,该方法将返回第 -1 行。让我们尝试查找英文字母表中字母A, K, Z,的序列号Я,但请记住,Java 中字符串中的字符索引是从零开始的:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

从字符串中提取子字符串

为了从字符串中提取子字符串,Java中的String类提供了方法:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
让我们看看如何使用元素定位和子字符串提取方法从其路径中获取文件名:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

将字符串转换为大写/小写:

String 类提供了将字符串转换为大写和小写的方法:
  • toLowerCase()
  • toUpperCase()
让我们通过一个例子来看看这些方法是如何工作的:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
JavaRush 在线课程的初级阶段研究了如何使用该 Java 类:

其他来源

JavaRush 社区的其他文章中也提供了有关 String 类的信息:
  1. Java 中的字符串- 本文介绍了在 Java 中使用字符串的一些基础知识。
  2. Java 字符串。面试问题和答案,第 1 部分- 本文讨论有关该主题的面试问题String,并提供问题的答案以及解释和代码示例。
  3. Java 中的字符串(类 java.lang.String) - 本文对 String 类进行了更深入的分析,并讨论了使用此类的复杂性。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION