String类

String中有常量池,用于存放直接创建出来的对象(不new);

String s1="abc123";
String s2="abc123";//放在常量池中,栈中地址与s1相同
String s3=new String("abc123");
System.out.println(s1==s2);//地址相同true
System.out.println(s1==s3);

  

编译器会在编译时将abc+123计算成“abc123”,所以在.class文
件中s4的值为“abc123”,所以s1等于s4

String s1="abc123";
	String s2="abc123";
String s4="abc"+"123";
	System.out.println(s1==s4);//true

  

int indexOf(String str)
* -查找指定字符串在当前字符串的位置
* -有多个重载的方法

package day01;
/**
 * int indexOf(String str)
 * -查找指定字符串在当前字符串的位置
 * -有多个重载的方法
 * @author ajia
 *
 */
public class StringAPIDemo02 {
public static void main(String[] args) {
	String str2="thinking in java";
	int index=str2.indexOf("in");
	System.out.println(index);//显示的位置下标为查找字符串的的首字母位置
	//如果没有找到则返回-1
	
	/**
	 * 重载方法:允许从指定位置开始查找
	 * 
	 */
	 index=str2.indexOf("in",3);//第一个参数为查找的字母,第二个为从指定位置的下标
	 System.out.println(index);

	 
	 /**
	  * 查找最后出现的指定字符串的位置
	  * 
	  */
	 index=str2.lastIndexOf("in");
	 System.out.println(index);

String substring(int start,int end)
* -截取字符串,从start开始截取到end

package day01;
/**
 * String substring(int start,int end)
 *  -截取字符串,从start开始截取到end
 *  Java api 中有一个特点:通常两个数字表示一个范围是,含头不含尾
 *  
 * 
 * @author ajia
 *
 */
public class StringAPIDemo03 {
public static void main(String[] args) {
	//          0123456789012345
	String str="thinking in java";
	//截取“ing”
	String sub=str.substring(5,8);//含头不含尾
	System.out.println(sub);
	
	//截取“java”
	/**
	 * 若只传入一个参数,则从指定位置开始截取字符串到末尾
	 */
    str=str.substring(12,16);
	System.out.println(str);
	
}
}

  

   } }

  

/**
* boolean startWith(String str)
* boolean endWith(String str)
* -判断当前字符串是否以指定的字符串开头或者结尾
*/

 

package day01;
/**
 * boolean startWith(String str)
 * boolean endWith(String str)
 *  -判断当前字符串是否以指定的字符串开头或者结尾
 */
public class StringAPIDemo06 {
public static void main(String[] args) {
	String str="thinking in java";
	boolean start=str.startsWith("th");
	System.out.println(start);
	boolean end=str.endsWith("java");
	System.out.println(end);
}
}

  

String toUpperCase()
* String toLowerCase()
* - 将当前字符串的英文转换成大写/小写

package day01;
/**
 * String toUpperCase()
 * String toLowerCase()
 * - 将当前字符串的英文转换成大写/小写
 *
 * @author ajia
 *
 */
public class StringAPIDemo07 {
public static void main(String[] args) {
	String str="java爱我";
	String upper=str.toUpperCase();
	System.out.println(upper);
	
	String lower=str.toLowerCase();
	System.out.println(lower);
	
	
	
}
}

  

static String value(XXX xxx)
* -将其他基本类型转换成String类型

 

package day01;
/**
 * String为我们提供一些静态方法
 * static String value(XXX xxx)
 *    -将其他基本类型转换成String类型
 * @author ajia
 *
 */
public class StringAPIDemo08 {
	public static void main(String[] args) {
		int a=10;
		String strA=String.valueOf(a);
		System.out.println(strA+1);
		
		double b=3.14;
		String strB=String.valueOf(b);
		System.out.println(strB+15);
	/*
	 * replace (int start,int end, String str)
	 * - 将指定范围内的字符串替换为指定内容
	 */
	su.replace(15,20,"个好媳妇");
	System.out.println(su.toString());
	
	/*
	 * StringBuilder delete(int start, int end)
	 * -删除指定范围内的字符串
	 * 努力学习java,为了找一个好媳妇
	 */
	su.delete(4, 9);
	System.out.println(su.toString());
	
	/*
	 * StringBuilder insert(int index, String str)
	 * -在指定位置插入一个字符串
	 * 
	 */
	su.insert(0, "活着");
	System.out.println(su.toString());

  

} }

  

posted @ 2018-08-20 11:24  那年丶青春无痕  阅读(89)  评论(0编辑  收藏  举报