核心技术笔记之JAVA字符串注意点(2014.04.15_day35)

字符串:javat字符串就是不可能改变的unicode 字符序列。Java没有内置的字符串类型,而是在标准的java类库中提供了一个预定义类的String,每个用双引号括起来的字符串都是String类的一个实例。

Java字符串由char值序列组成。Char类型是一个采用UTF—16编码表示unicode代码点的代码单元。

Length:是返回采用UTF-16编码表示的给定字符所需要的代码单元数量。

使用方法:string greeting=”hello”;

          Int n=greeting.length();

Java中字符串的定义也就是String类的定义:String s1=ddfa

                                String s2=new String 334e3;

                                String s3=new String(s3)

获取字符串长度的方法:int size=s1.size如这里执行结果为:4


package test01;

 

public class Length {

    public static void main (String[] args){

       String greeting="Hello";

       int n=greeting.length();

       System.out.println(n);

      

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

       System.out.println(cpcount);

      

       char first=greeting.charAt(0);

       char last=greeting.charAt(4);

       System.out.println(first);

       System.out.println(last);

      

      

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

       int cp=greeting.codePointAt(index);

       System.out.println(cp); 

    }

}

采用isSupplementaryCodepointAt(i)进行遍历:

Int cp=sentence.codePointAt(i);

If (Character.isSupplementaryCodePoint(cp)) i+=2;

Else i++;

 

codePointAt方法能够辨别一个代码单元是辅助字符的第一部分还是字符的第二部分,并能够返回正确的结果。

可以使用回退操作。

i--;

int cp=sentence.codepointAt(i);

if (Character.isSupplementaryCodePoint(cp)) i--;

 

子串:String类的substring方法可以从一个较大的字符串提取出一个一个子串。

用法:如:String greeting=”Hello”;

String s=greeting.substring(0,3);

这里提取出来的s就是”Hel”

 

Substring 工作方式的优点:容易计算子串中的代码单元的数量。字符串s.substring(a,b)将包含b-a个代码单元。

 

字符串编辑:在java中的String类中没有提供用于修改字符串的方法。如果要修改字符串,要先提取,再替换上要修改的部分的字符串,然后再拼接起来。

如:将hello改为help

String greeting=”Hello”;

String s=greeting.substring(0,3)+”p!”;

用拼接来修改字符串的方法看似比直接修改要效率低,其实,它有自己有优点,就是编译器可以将字符串共享。

了解具体的工作方式,可以将它想象成各种字符串存放在公共的存储池中。字符串变量指向存储池相应的位置。

Java中有一个独立的类:StringBuilder,是对源自文件和键盘的单个字符汇集成字符串。

 

字符串的拼接:

 

字符串的判断:字符串的判断有两种== 和equal,但两者之间有区别。==表示确定两个字符串是否在同一个位置。而equal是检测两个字符是否相等。而要检测两个字符串是否相等,而不区分大小写,可以使用equalsgnoreCase方法。最好永远不要使用==来判断,程序中会出现很糟糕的bug的。

重要的java.lang.string:返回指定的代码单元 char charAt(int index)

返回从给定位位置开始实或结果的代码点 int offsetBycodepoints (int startindex,int cpcoutn) 5.0

返回从startindex代码点开始,位移cpcount后的代码点索引 int compare to(String other)

Boolean equals ( object other )如果字符串以suffix结尾,则返回frue。

Boolean equalsignoreCase(String other) 如果字符串与other相等,刚返回true。

Int indexOf(String str)如果字符串与other相等,忽略大小写,刚返回true。

Int lastindexOf(Sting str)返回与字符串str或代码点cp匹配的第一个子串的开始位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值