第五节 String类,subString,equals方法,substringequals
分享于 点击 31518 次 点评:26
第五节 String类,subString,equals方法,substringequals
下面的主要介绍一下String类,String 类中的substring方法与equals方法
public class base03 {
public static void main(String[] args) {
String aString="abcdefg";
//String类源码:如下,String类是final修饰,表示类不能被继承,类中所有的方法都不可重写
//public final class String implements java.io.Serializable, Comparable<String>, CharSequence
//private final char value[];//说明String 其实是一个char数组
//此时参数2为beginIndex,
String bString=aString.substring(2);
//源码,直接调用String重载方法,endIndex为
/*public String substring(int beginIndex) {
return substring(beginIndex, count);
}*/
System.out.println(bString);
aString.substring(1, 5);
//substring源码 此源码的substring方法就是aString.substring(2)中的方法
/*public String substring(int beginIndex, int endIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > count) {
throw new StringIndexOutOfBoundsException(endIndex);
}
if (beginIndex > endIndex) {
throw new StringIndexOutOfBoundsException(endIndex - beginIndex);
}
return ((beginIndex == 0) && (endIndex == count)) ? this :
new String(offset + beginIndex, endIndex - beginIndex, value);
}*/
String iString="hello";
String jString="hello";
System.out.println(iString==jString);//true 这就是上一篇字符串拼接讲的,证明iString和jString是同一个“hello”
String mString=new String("hello");
String nString=new String("hello");
//因为创建两个对象后分配内存,mString和nString中存储的是内存地址,由于不是同一个对象
System.out.println(mString==nString);//false
System.out.println(mString.equals(nString));//true
//String equals 源码:首先比较内存地址,如果内存地址是一样的,那么一定相等。如果不相等,则继续
//判断是否是String类型,然后进行char数组的一 一 对比
/* public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}*/
}
}
相关文章
- 暂无相关文章
用户点评