String类的方法案例使用

package com.heima.string;

public class Demo1_String {
/*
 * a:字符串面值“abc”也可以看成一个字符串对象
 * b:字符串是常量,一旦被赋值,不能被更改
 * */
	public static void main(String[] args) {
		String str="abc";		//abc可以看作一个字符串对象
		System.out.println(str);	//String类重写了toSring方法,返回的是该对象本身
		str="def";
		System.out.println(str);//当把def赋值给str时,原来的abc就变成了垃圾。这就是所谓的一旦被赋值不能改变
		
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

string类的常见构造方法

package com.heima.string;

public class Demo2_String {
/*
 * String类的常见构造方法
 * 	public String() 空构造
 * 	public String(byte[] bytes)把字节数组转换成字符串
 * 	public String(Byte[] bytes,int index,int length)把字节数组的一部分转换成字符串
 * 	public String(char[] value,int index,int count)把字符数组一部分转换成字符串
 * 	public String(char[] value)把字符数组转换成字符串
 * 	public String(String original0把字符常量转换成字符串
 * */
	public static void main(String[] args) {
		String s1=new String();
		System.out.println(s1);//空构造
		byte[] arr1={97,98,99};
		String s2=new String(arr1);//解码,将计算机看得懂的转换成我们看的懂的
		System.out.println(s2);//打印结果是abc,对应的asiic码值,其实用的是平台默认的GDk码表
		
		byte[] arr2={97,98,99,100,101,102};
		String s3=new String(arr2,2,3);//从2开始转三个
		System.out.println(s3);
		
		char[] data={'a','b','c','d','e'};
		String s4=new String(data);//将字符数组转换成字符串
		System.out.println(s4);
		
		char[] data2={'a','b','c','d','e'};
		String s5=new String(data2,2,3);//从2开始转换3个
		System.out.println(s5);
		
		String s6=new String("heima");//把字符常量转换成字符串,没啥意思,一般不用
		System.out.println(s6);
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。、

string类的经典面试题

package com.heima.string;

public class Demo3_String {

	public static void main(String[] args) {
		demo1();//常量池中没有这个字符串对象就创建一个,如果有,就直接用
		demo2();//创建了俩个对象,一个在常量池中,一个在对内存中
		demo3();
		demo4();
		demo5();
	}

	private static void demo5() {
		String s1="ab";
		String s2="abc";
		String s3=s1+"c";
		System.out.println(s3==s2);//返回false,因为:
		//主方法进栈,在常量池内创建”ab“和”abc“,分别把地址赋值给s1和s2,然后用StringBuffer方法在堆内存中”abc“(创建的s3是由”ab“加上”c“)
		//然后用toString方法转换成String类,把转换后的地址复制给s3.所以地址不一样。
		System.out.println(s3.equals(s2));//这个结果一定是ture
	}

	private static void demo4() {//两个结果都是true,因为Java内有常量优化机制,在“a”+“b”+“c”时,已经优化为
		//“abc”,所以s2创建对象时,已经存在abc对象,不用重新创建了
		String s1="a"+"b"+"c";
		String s2="abc";
		System.out.println(s1==s2);		
		System.out.println(s1.equals(s2));
	}

	private static void demo3() {
		String s1=new String("abc");
		String s2="abc";
		System.out.println(s1==s2);		//这个结果是false,因为地址值不一样,一个记录的是对内存对象的地址值,一个记录的是常量值对象中的地址
		System.out.println(s1.equals(s2));//这个返回true,以为字符序列是一样的
	}

	private static void demo2() {
		String s1=new String("abc");//问:创建了几个对象
		System.out.println(s1);
	}

	private static void demo1() {
		String s2="abc";
		String s1="abc";
		System.out.println(s1==s2);		
		System.out.println(s1.equals(s2));//两个答案都是true
	}	

}
 
 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

string类的常用方法

package com.heima.string;
/*
 * String的判断方法
 * 	boolean equal(object obj)//比较字符串内容
 * boolean equalsIgonrecase(String obj)比较字符串内容忽略大小写
 * boolean contains(String str)//判断是否包含传入的字符串
 * */

public class Demo4_StringMethod {
	public static void main(String[] args){
		//demo1();	抽取方法
		//demo2();
		//demo();
		String s1="heima";
		String s2="";
		String s3=null;//""和null的区别,首先”“是字符串常量同时也是一个string类的对象,既然是对象当然可以调用string类的方法
		//但是null是空常量,不能调用任何方法,否则会出现空指针异常。null常量可以给容易的引用数据类型赋值
		System.out.println(s1.isEmpty());
		System.out.println(s2.isEmpty());
		//System.out.println(s3.isEmpty());
	}

	private static void demo() {
		String s1="woai haha";
		String s2="wo jiji";
		String s3="ha";
		System.out.println(s1.endsWith(s3));//判断s1是否以s3结尾
		System.out.println(s1.startsWith(s2));//判断s1是否以s2开头
	}

	private static void demo2() {//判断是否包含传入的字符串
		String s1="我爱heima,哈好";
		String s2="heima";
		System.out.println(s1.contains(s2));
	}

	private static void demo1() {//比较字符串内容
		String	s1="heima";
		String s2="heima";
		String s3="Heima";
		System.out.println(s1.equals(s2));
		System.out.println(s2.equals(s3));
		System.out.println(s2.equalsIgnoreCase(s3));
	}

}
package com.heima.string;
/*
 * int length()获取字符串长度
 * char charAt(int index)//获取索引位置的字符
 * int indexOf(int ch)返回指定字符在字符串中第一次出现的索引
 * int indexOf(Stirng str)返回指定字符在字符串中第一次出现的索引
 * int indexOf(int ch,String str)返回指定字符在指定位置后第一次出现的索引
 * int indexOf(String str,int formIndex)返回指定字符串在指定位置后第一次出现的索引
 * String substring(int start)从指定位置开始截取字符串,到末尾结束
 * String substring(int start,int end)从指定开始位置到指定结束位置截取字符串
 * */
public class Demo5_StringMethod {
	public static void main(String[] args){
		String s1="heiam";
		String w="e";
		System.out.println(s1.length());
		System.out.println(s1.charAt(2));
		System.out.println(s1.indexOf(2));
		System.out.println(s1.indexOf(w));
		String we=s1.substring(2, 4);
		System.out.println(we);
	}
}
package com.heima.string;

public class Demo6_StringMethod {
/*
 * byte[] getBytes()把字符串转换成字节数组
 * char[] tocharArray()把字符串转换成字符数组
 * static String valueOf(char[] chs)把字符数组转换成字符串
 * static String valueOf(int i)把int类型数据转化成字符串
 *注意:
 *		String类的value函数可以把任意类型数据转换成字符串
 *
 *string toLowCase()字符串转换成小写
 *String toUpperCase()字符串转换成大写
 *String conCat(String str)把字符串拼凑
 * */
	public static void main(String[] args) {
		demo2();
		demo3();
	}



private static void demo3() {
	String s="heiam";
	String s2="  buxing";
			System.out.println(s.concat(s2));
}



private static void demo2() {
	String s1="ajoidh";
	byte[] arr=s1.getBytes();
	for(int i=0;i<s1.length();i++){
		System.out.println(arr[i]);}
	String s2="你好你好";
	byte[] arr2=s2.getBytes();//GBK码表,将字符串转换成字节数组,一个中文两个字节,中文的第一个字节一定是负数
	for(int o=0;o<s2.length();o++){
		System.out.println(arr2[o]);
	}
	demo1(s1);
}



private static void demo1(String s1) {
	char[] array=s1.toCharArray();
	for(int r=0;r<s1.length();r++){
		System.out.print(array[r]);
	}
}}

package com.heima.string;

public class Demo7_StringMethod {
/*
 * replace(char old,char new)用新字符替代旧字符
 * String replace(String old,String new)用新字符串替代旧字符串
 * string trim()去除字符串两端空格
 * */
	public static void main(String[] args) {
		String s="hehehehe";
		String s2=s.replace('h', 'q');
		System.out.println(s2);
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

模拟用户登陆demo

package com.heima.string;

public class Demo7_StringMethod {
/*
 * replace(char old,char new)用新字符替代旧字符
 * String replace(String old,String new)用新字符串替代旧字符串
 * string trim()去除字符串两端空格
 * */
	public static void main(String[] args) {
		String s="hehehehe";
		String s2=s.replace('h', 'q');
		System.out.println(s2);
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

统计不同字符个数demo

package com.heima.test;

public class Test3 {

	public static void main(String[] args) {
		//统计不同类型的字符个数
		demo();
		
	}

	private static void demo() {
		String str="adhuiaADADF561090(*&%$%^&5";
		int a1=0;
		int A1=0;
		int shuzi1=0;
		int fuhao1=0;
		for(int i=0;i<str.length();i++){
			char u=str.charAt(i);
			if(u>='a'&&u<='z'){
				a1++;
			}else if(u>='A'&&u<='Z'){
				A1++;
			}else if(u>='0'&&u<='9'){
				shuzi1++;
			}else{
				fuhao1++;
			}
		}
		System.out.println(a1);
		System.out.println(A1);
		System.out.println(shuzi1);
		System.out.println(fuhao1);
	}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

扫描二维码关注公众号,回复: 1004798 查看本文章

转换大小写demo

package com.heima.test;

public class Test4 {

	public static void main(String[] args) {
		demo();//把字符串首字母转换成大写,其余转换成小写
	}

private static void demo() {
	String str="dsahHKH";
	String s1=str.substring(0, 1);
	s1=s1.toUpperCase();
	String s2=str.substring(1);
	s2=s2.toLowerCase();
	str=s1.concat(s2);
	System.out.println(str);
	
}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

把数组转换成字符串

package com.heima.test;

public class Test5 {
//把数组转换成字符串
	/*
	 * 分析:
	 * 		需要定义以一个字符串
	 * 		遍历数组获取每个元素
	 * 		用字符串于数组进行拼接
	 * */
	public static void main(String[] args) {
		int[] arr={11,22,33,44};
		String s="[";
		for(int i=0;i<arr.length;i++){
			if(i<=arr.length-2){
				s=s+arr[i]+", ";
			}else{
				s=s+arr[i]+"]";
			}
		}
		System.out.println(s);
	}

}



猜你喜欢

转载自blog.csdn.net/qq_34788903/article/details/80369861