java string对象类型_java 面向对象String类

1.String类:String 是不可变字符序列

1) char charAt(int index)返回字符串中第 index 个字符。

2) boolean equalsIgnoreCase(String other) 如果字符串与other

相等(忽略大小写),则返回 true

3) int indexOf(String str) lastIndexOf() 查找指定字符串

出现的位置(下标)

4) int length()返回字符串的长度。

5) String replace(char oldChar,char newChar)返回一个新串,

它 是 通过 用 newChar 替 换 此字 符 串中 出 现的 所 有

oldChar 而生成的

6) boolean startsWith(String prefix)如果字符串以 prefix 开始,

则返回 true

7) boolean endsWith(String prefix) 如果字符串以 prefix 结

尾,则返回 true

8) String substring(int beginIndex)

String substring(int beginIndex,int endIndex)返回一个新字符

串,该串包含从原始字符串 beginIndex 到串尾或 endIndex-1

的所有字符

9) String toLowerCase()返回一个新字符串,该串将原始字符

串中的所有大写字母改成小写字母

10) String toUpperCase()返回一个新字符串,该串将原始字

符串中的所有小写字母改成大写字母

11) String trim() 返回一个新字符串,该串删除了原始字

符串头部和尾部的空格

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classMyString {public static voidmain(String[] args) {

String str1= "hello word";

String str2= "hello word";

System.out.println(str1.charAt(1));//e 返回字符串中第 index 个字符。

System.out.println(str1.length());//10

System.out.println(str1.equalsIgnoreCase("abc"));//false

System.out.println(str1.equals(str2));//true

System.out.println(str1.indexOf('d'));//9 下标从0开始

System.out.println(str1.lastIndexOf('o'));//7

System.out.println(str1.replace('o', 'q'));//hellq wqrd

System.out.println(str1);//hello word 上一条语句替换没有发生在原来的字串中 而是产生一个新串作为输出

System.out.println(str1.startsWith("he"));//true

System.out.println(str1.endsWith("rd"));//true

System.out.println(str1.substring(3));//lo word

System.out.println(str1.substring(1, 6));//ello

System.out.println(str1);//hello word

str1 = str1.substring(3);

System.out.println(str1);//lo word

String str3= " HELlo word ";

System.out.println(str3.trim());//HELlo word

System.out.println(str3.toLowerCase());//hello word

System.out.println(str3.toUpperCase());//HELLO WORD

}

}

View Code

2.String比较和构造方法

compareTo源码:先比较每一个字符是否相同,再比较长度

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public intcompareTo(String anotherString) {int len1 =value.length;int len2 =anotherString.value.length;int lim =Math.min(len1, len2);char v1[] =value;char v2[] =anotherString.value;int k = 0;while (k

}

k++;

}return len1 -len2;

}

View Code

实例:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classTestString {public static voidmain(String[] args) {

String str="apple";

String str2="banana";

String str3="cat";

String str4="dog";

String str5="app";/**求两个字符串的长度的最小值,使用循环,比较对应位置上的字母,如果不相同,则对应位置字母的ASCII值相减*/System.out.println(str.compareTo(str2));//-1 97-98?

System.out.println(str.compareTo(str3));//-2 97-99?

System.out.println(str.compareTo(str4));//-3 97-100?//两个字符串的长度相差 5-3=2

System.out.println(str.compareTo(str5)); //2

/**String类的构造方法*/String s1=new String();//创建了一个长度为0的字符串

String s2=null;//没有创建对象,只是声明了String类型的对象s2

String s3=new String("hello");//通过char类型的数组构造String对象

char [] c={'a','b','c'};

String s4=newString(c);

System.out.println(s4);//abc

byte [] b={97,98,99};

String s5=newString(b);

String s6=new String(c,0,2);

System.out.println("s6:"+s6);//s6:ab

}

}

View Code

3.字符串相等的判断

==:比较两个字符串内存地址是否相等

equals(Object obj):用于比较两个字符串对象的内容是否相等

1 public classTestString {2 public static voidmain(String[] args) {3 String str="abc";4 String str2=new String("abc");5 System.out.println("两个对象的内存地址是否相等:"+(str==str2));//false

6 /**比较对应位置上的字符是否相等,如果所有的对象位置上的字符均相等,true,否则返回false*/

7 System.out.println("两个对象的内容是否相等:"+(str.equals(str2)));8 //以下结果为 false

9 /**因为Person对象 instanceof String 的结果为false ,直接返回false*/

10 System.out.println("String对象与Person对象的内容是否相等:"+(str.equals(newPerson())));11 }12 }13 classPerson{14

15 }

4.常量池:用于存储在编译期确定,并被保存在已编译的字节码文件中的一些数据,包括 final 修饰变量及字符串变量,和符号引用量。

1 public classTestString2 {2 public static voidmain(String[] args) {3 String str1="abc";4 String str2="a"+"b"+"c";5 String str3=new String("abc");6 String str4=str3+"";7 String str5=new String("abc");8 System.out.println("str1==str2:"+(str1==str2));//true

9 System.out.println("str1==str3:"+(str1==str3));//false

10 System.out.println("str1==str4:"+(str1==str4));//false

11 System.out.println("str3==str5:"+(str3==str5));//false

12

13 }14 }

ce930b8e7834c3dff9400723ffb076ce.png

等号右侧有new则在堆里开空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值