字符串

Posted 小南蛮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串相关的知识,希望对你有一定的参考价值。


  java语言中,字符串是字符的序列,包含零或多个字符。作为对象处理,被封装在双引号中(不是单引号,单引号封装的是char类型的数据)。他提供了一系列方法对整个字符串进行操作,使得对字符串的处理更加容易和规范。

  java.lang包中定义了两个用于字符串操作的类:String 和 StringBuffer 类。在运行中其值不能被改变的字符串用String 类存储;其值能被改变的字符串用StringBuffer类来存储。

  String 和 StringBuffer 类都被声明为final ,因此都不能被继承。下面重点讨论String 类。


1.String 字符串创建

  String类的对象可用字符串常量对其初始化,也可调用其构造方法来进行。例:

String s = "Hello World ";                        //使用字符串常量"Hello World "初始化s对象

  注:利用字符串常量对String 类的对象赋值,为该对象在常量池中分配内存空间。经常使用的创建字符串的另一个方法是使用String类的构造方法。String类的主要构造方法见下表:

String类的主要构造方法
方法 功能 示例
String() 初始化一个新建的String对象,是其表示一个空字符序列

String s = new String();

s 的内容为""(空)

String(String original)

初始化一个新创建的String 对象,使其表示一个与参数相同的字符序列,

换句话说,新创建的字符串是该参数字符串的副本

String s = new String("Hello");

s 的内容为"Hello"

String(char[] value) 分配一个新的String,使其表示字符数组参数中当前包含的字符序列

char[] ch = {‘H‘,‘e‘,‘l‘,‘l‘,‘o‘};

String s = new String(ch);

s 的内容为"Hello"

String(char[] value,int offset,int count) 分配一个新的String,它包含取自字符数组参数一个子数组的字符

char[]

ch={‘H‘,‘e‘,‘l‘,‘l‘,‘o‘,‘‘,‘j‘,‘a‘,‘v‘,‘a‘};

String s = new String(ch,0,5);

s 的内容为"Hello"

  注:java语言不能讲讲字符串看做字符数组。使用new操作创建的字符串在堆内存中为其分配空间。


2.String类的常用方法

  String类的功能很强大,几乎覆盖了所有的字符串运算操作。下面是一些常用方法:

String类的常用方法
方法 功能 示例
char charAt(int index) 返回指定索引处的char值

String s ="Hello java";

char c = s..charAt(6);

c的值为’j’

String concat(String str) 将指定字符串连接到此字符串的结尾

String s1 = "Hello";

String s2 = "java";

s1 = s1.cancat(s2);

s1 的内容为"Hello java"

boolean equals(Object anObject) 将次字符串与制定的对象比较,当且仅当该参数不为null,并且是与此对象表示相同字符序列的String对象是,结果才为true

String s1 = "Hello java"

String s2 = new String("Hello java");

boolean b = s1.equals(s2);

b的值为true

int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引

int x = 97; // 对应小写字母a

String s = "Hello java";

int index = s.indexOf(x);

index 是小写字母a在字符串中的第一次出现的索引值,即7

int indexOf(String str) 返回指定子字符串在此字符串中第一次出现的索引

String s = "Hello java";

int index = s.indexOf("Hello");

index 是字符串"Hello"在字符串s中第一次出现的索引值,即0
boolean isEmpty()

当且仅当length() 为0 时返回 true

String s1 ="";

String s2 = "Helo java";

boolean b1=s1.isEmpty();

boolean b2 =s2.isEmpty();

b1的值为true,B2的值为false

int length() 返回此字符串的长度,字符串的下标是从0~(length-1)

String s ="Hello java";

int l = s.length();

l 的值为10

String substring(intbeginIndex,int endIndex) 返回从beginIndex 位置到endIndex(不包括该位置)之间的所有字符组成的新字符串

String s1 = "Hello java";

String s2 = s1.subString(6,9);

s2的内容为java

String toLowerCase() 使用默认语言环境的规则将String 中的所有字符都转换为小写

String s1 = "Hello java";

String s2 = s1.toLowerCase();

s2的内容为"hello java"

String toUpperCase() 使用默认语言环境的规则将String 中的所有字符都转换为大写

String s1 = "Hello java";

String s2 = s1.toUpperCase();

s2的内容为"HELLO JAVA"

static String valueOf(type value) 返回相应类型参数的字符串表现形式

int value = 123;

String s1 = String.valueOf(value);

String s2 = String.valueOf(153.2);

s1的内容为"123",s2 的内容为"153.2"

    注:1.包含一个空格字符的字符串不是空串

    2.区分数组中的length属性与String类中的length()方法。


3.字符串与数值之间的转换

  java语言为每种基本数据类型提供了封装类,分别对应为Byte,Short,Integer,Long,Float,Double,Character和Boolean 类。这些封装(wrapper)类提供了很直观的实用方法。特别是每种封装类(除Character)中都有parseXXX()方法将一个String 对象转换成相应的数值。同时,在String类中提供了多个静态的重载valueOf()方法,将相应的基本数据类型转换成相应的字符串类型。


 

以上是关于字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

JavaScript 代码片段

CSP核心代码片段记录

带有神秘附加字符的 Javascript Date getTime() 代码片段

web代码片段

vs code 自定义代码片段