Java教程

Java String介绍

在Java中,String基本上是表示char值序列的对象。字符的array与JavaString相同。例如:
char[] ch={'j','a','v','a','t','p','o','i','n','t'};
String s=new String(ch);
与:
String s="lidihuo";
Java String 类提供了许多对String执行操作的方法,例如compare(),concat(),equals(),split(),length(),replace(), compareTo(),intern(),substring()等。
java.lang.String类实现了 Serializable Comparable CharSequence 接口
Java中的String

CharSequence接口

CharSequence接口用于表示字符序列。 String,StringBuffer 和 StringBuilder 类实现了它。这意味着,我们可以使用这三个类在Java中创建String。
Java中的CharSequence
JavaString是不可变的,这意味着它无法更改。每当我们更改任何String时,都会创建一个新实例。对于可变String,可以使用StringBuffer和StringBuilder类。
稍后我们将讨论不可变String。首先,让我们了解Java中的String以及如何创建String对象。

java中的String是什么

通常,String是字符序列。但是在Java中,String是一个代表字符序列的对象。 java.lang.String类用于创建String对象。

如何创建String对象?

有两种创建String对象的方法:
按String文字 使用new关键字

1)String文字

Java String文字是使用双引号创建的。例如:
String s="welcome";
每次创建String文字时,JVM首先检查"String常量池"。如果该String已经存在于池中,则返回对该池实例的引用。如果该String在池中不存在,则会创建一个新的String实例并将其放置在池中。例如:
String s1="Welcome";
String s2="Welcome";
JavaString文字
在上面的示例中,将仅创建一个对象。首先,JVM在String常量池中找不到任何值为"Welcome"的String对象,这就是为什么它将创建一个新对象。之后,它将在池中找到值为" Welcome"的String,它将不会创建新对象,但会返回对同一实例的引用。
注意: String对象存储在称为"String常量池"的特殊存储区中。

为什么Java使用String文字的概念?

使Java的内存使用效率更高(因为没有new对象)如果它已经存在于String常量池中,则创建它们。

2)通过new关键字

String s=new String("Welcome");
在这种情况下,JVM将在普通(非池)堆内存中创建一个新的String对象,而文字" Welcome"将放置在String常量池中。变量s将引用堆(非池)中的对象。

JavaString示例

public class StringExample{
    public static void main(String args[]){
        String s1="java";
        literalchar ch[]={
        's','t','r','i','n','g','s'}
        ;
        String s2=new String(ch);
        String s3=new String("example");
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
    }
}
javastringsexample

Java String类方法

java.lang.String类提供了许多有用的方法来对char值序列执行操作。
方法 说明
char charAt(int index) 返回特定索引的char值
int length() 返回String长度
static String format(String format, Object... args) 返回格式化的String。
static String format(Locale l, String format, Object... args) 返回具有给定语言环境的格式化String。
Stringsubstring(int beginIndex) 返回给定开始索引的子String。
Stringsubstring(int beginIndex,int endIndex) 返回给定开始索引和结束索引的子String。
boolean contains(CharSequence s) 匹配char值的序列后返回true或false。
static String join(CharSequence delimiter, CharSequence... elements) 返回连接的String。
static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements) 返回连接的String。
boolean equals(Object another) 检查String与给定对象的相等性。
boolean isEmpty() 检查String是否为空。
Stringconcat(String str) 连接指定的String。
String replace(char old, char new) 替换所有出现的指定char值。
String replace(CharSequence old, CharSequence new) 替换所有出现的指定CharSequence。
static String equalsIgnoreCase(String another) 比较另一个String。它不检查大小写。
String[] split(String regex) 返回与正则表达式匹配的拆分String。
String[] split(String regex, int limit) 返回与正则表达式和限制匹配的拆分String。
String intern() 返回一个实习String。
int indexOf(int ch) 返回指定的char值索引。
int indexOf(int ch,int fromIndex) 从给定索引开始返回指定的char值索引。
int indexOf(String子String) 返回指定的子String索引。
int indexOf(String substring,int fromIndex int) 从给定索引开始返回指定的子String索引。
String toLowerCase() 以小写形式返回String。
String toLowerCase(Locale l) 使用指定的语言环境以小写形式返回String。
String toUpperCase() 以大写字母返回String。
String toUpperCase(Locale l) 使用指定的语言环境返回大写的String。
String trim() 删除该String的开头和结尾空格。
static String valueOf(int value) 将给定类型转换为String。这是重载的方法。


您知道吗?
为什么String对象是不可变的? 如何创建一个不变的类? 什么是String常量池? 如果用+(String连接运算符)连接任何String,编译器将编写什么代码? StringBuffer和StringBuilder类有什么区别?

相关主题

Java String对象是不可变的特性 Java String拼接 Java String如何比较 Java String截取 Java String toString()方法 Java StringBuffer类 Java StringBuilder类 Java StringTokenizer类
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4