Java基本程序设计结构——字符串

1.概念:

    Java的字符串就是Unicode的字符序列

    例如:串的“Java \ u2122”由5个的Unicode字符Ĵ,A,V,A和™

    Java的没有内置的字符串类型,而是在标准的Java类库中提供了一个预定义类

2.字串:

    串类的子方法可以提取一个字串

    例如:String greeting =“Hello”; String s = greeting.substring(0,3); 得到“赫尔”

3.拼接:

    两个字符串直接用“+”连接。

    如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态加入方法:

    例如:String all = String.join(“/”,“S”,“M”,“L”,“XL”); 得到“S / M / L / XL”

4.不可变字符串:

    串类没有提供用于修改字符串的方法

    这样做是否会降低运行效率呢?

    答案:也对,也不对

    创建一个新字符串的效率确实不高,但是,不可变字符串有一个优点:编译器可以让字符串共享

    Java的字符串大致类似于字符*指针

    例如:char * greeting =“Hello”;

    C ++字符串是可修改的。

5.检测字符串是否相等:

    使用等于方法

    例如:s.equals(T);

    在不区分大小写的情况下比较字符串使用equalsIgnoreCase方法

    例如: “你好” .equalsIgnoreCase( “你好”);

    不能使用==运算符检测两个字符串是否相等,这个运算符只能够确定两个字符串是否放在同一位置上

    如果虚拟机始终将相同的字符串共享,就可以使用==运算符检测是否相同。但是实际上只有字符串常量是共享的,而+或子串等操作的结果并不是共享的。

    和Ç语言中的的strcmp函数完全类似的比较字符串的java的方法是的compareTo

    例如:如果(greeting.compareTo( “你好”)== 0)......

6.空串和空串:

    空串 “” 是长度为0的字符串

    空串是个Java的对象,有自己的长度(0)和内容(空)

    空串表示目前没有任何对象与该变量关联

7.码点和代码单元:

    Java的字符串由字符值序列组成

    长度方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量

    例如:String greeting =“Hello”; int n = greeting.length(); //是5。


    要想得到实际的长度,即码点数量,可以调用:

    int cpCount = greeting.codePointCount(0,greeting.length());


    调用s.charAt(n)将返回位置n的代码单元,n介于0〜s.length() - 1之间

    例如:char first = greeting.charAt(0); //是'H'


    要想得到第我个码点,应该使用下面语句

    int index = greeting.offsetByCodePoints(0,i);

    int cp = greeting.codePointAt(index);


    将一个字符串转换为一个码点数组

    int [] codePoints = str.codePoint()。toArray();

    反之

    String str = new String(codePoints,0,codePoints.length);

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80572460