Java---->String的基本操作

<pre name="code" class="java">public class Demo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new Demo1();
	}

	public Demo1(){
		
//		//String 实例化的两种方法
//		String s = "You are the best";
//		String ss = new String("you are the best");
//		String sss = "you are" + " the best";
//		
//		System.out.println("s : " + s);
//		System.out.println("ss :" + ss);
//		System.out.println("sss : " + sss);
//		
//		//判断字符串是否相等用    equals
//		System.out.println("调用 equals 的执行结果");
//		boolean b1 = (s.equals(ss));
//		System.out.println("b1 == " + b1);
//		boolean b2 = (ss.equals(sss));
//		System.out.println("b2 == " + b2);
//		
//		//equalsIgnoreCase 不区分大小写比较
//		System.out.println("调用 equalsIgnoreCase 的执行结果");
//		boolean b5 = (s.equalsIgnoreCase(ss));
//		System.out.println("b5 == " + b5);
//		boolean b6 = (ss.equalsIgnoreCase(sss));
//		System.out.println("b6 == " + b6);
//		
//		//使用比较运算符   ==
//		//java中   == 是判断两个对象的堆内存是否相等,属于地址的数值相等的比较,并不是关于字符串内容
// 		boolean b3 = (s == ss);
//		System.out.println("b3 == " + b3);
//		boolean b4 = (s == sss);
//		System.out.println("b4 == " + b4);
//		
//		//引用匿名对象
//		String str = "Hello";
//		//采用"字符串".equals(字符串对象);此时的equals()可以自动区里null问题,正常判断
//		System.out.println("Hello".equals(str));
		//注意与上一个的区别
		//如果st中没有输入用户名,则会提示NullPointerException警告
//		String st = null;
//		System.out.println(st.equals("Hello"));
		
		/*
		 * String类的对象在实例化的时候采用不同的方式,开辟的内在空间也不同
		 * 直接赋值:只开辟一块堆内存空间,而且保存的字符串内容自动入池,以供其他内容相同的字符串使用
		 * 构造方法:开辟两块堆内存空间,有一块将变成垃圾,并且字符串的内容无法自动入池,但是可以使用String类的intern()方法手工入池
		 */
		
		//采用直接赋值法创建字符串时的内存分配
//		String a = null,b = null,c = null;
//		a = "Hello";
//		//如果已经采用直接复制方式开辟了内存空间,再次采用同一方式的时候会指向同一块内存
//		b = "Hello";
//		c = a;
//		System.out.println(a == b);
//		System.out.println(a == c);
//		System.out.println(b == c);
		
//		String a = "Hello";
//		String b = new String("Hello").intern();
//		String c = "Hello";
//		String d = new String("Hello");
//		System.out.println(a == b);
//		System.out.println(a == c);
//		System.out.println(b == c);
//		System.out.println(a == d);
	
		//String对象一旦声明则不可改变
		//由下面的例子可以看出。输出的内容改变了,但是字符串中的内容并没有变化,改变的只是String类对象的引用,并且会产生大量的垃圾,这种方法应该尽量避免,少使用
//		String str = "Hello";
//		str += " World";
//		str += "!!";
//		System.out.println(str);
		
		/*
		 * 字符串与字符数组之间的转化及相关操作
		 * charAt();返回指定索引位置上的字符串内容
		 * toChatArray();将字符串变为字符数组
		 * new String();将字符数组转化为字符串
		 * new String(a,b,c);将字符数组a从第b号元素开始,输出连续的c个(注意一定不要越界)
		 */
		String str = "helloworld";
		//输出字符串中第4个位置的元素,从0开始计数
		System.out.println(str.charAt(4));
		
		//将字符串转化为字符数组
		char a[] = str.toCharArray();
		for(int i = 0;i < a.length;i ++)
		{
			System.out.print(a[i] + ",");
			//小写和大写的ASCII值差32
			a[i] -= 32;
		}
		System.out.println();
		
		System.out.println("将全部字符数组转化为字符串" + new String(a));
		//取得部分内容的时候需要设置起始点和取得的长度,注意字符串是从0开始计数的
		System.out.println("将部分字符数组变为字符串" + new String(a,5,4));
	}
}

 


package Test1;

public class Demo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new Demo2();
	}

	public Demo2(){
		
		String str = "hellojava";
		//将字符串转化为byte数组
		byte[] a = str.getBytes();
		//小写变大写
		for(int i = 0;i < a.length;i ++)
			a[i] -= 32;
		//将字节数组转化为字符串输出
		System.out.println(new String(a));
		//将字节数组a从第2个元素开始的3个元素转化为字符串输出
		System.out.println(new String(a,2,3));
	}
}


/*
 * 注意在访问的时候一定要防止数组越界
 * 1.字符串查找方法
 * 判断字符串中子串是否存在时,返回的是boolean值,
 * 判读某字符出现的位置时,返回字符在字符串中出现的第一个位置的索引值,如果没有找到,则返回-1
 * 
 * 2.字符串替换
 * 
 * 3.字符串截取
 * 从一个指定的字符串中取出部分的内容
 * 
 * 4.字符串拆分
 * 将一个字符串按照指定的字符串拆分成若干个字符串,返回的是一个字符型数组
 * 注意下面几种特殊的用字符串拆分的方法
 * str.split("\\.");
 * str.split("\\|");
 * str.split("\\\\");//用\作为分隔符
 * 有多个分隔符的时候
 * str.split("a|b");//以字符串a或者b进行分割
 * 
 * 5.补加
 * s.length();
 * s.trim.length();//取出字符串前后的空格后字符串的长度
 * s.toUpperCase();//全部变为大写
 * s.toLowerCase()//所有字母都转化为小写
 * s.concat(str);//字符串连接
 */

public class Demo3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new Demo3();
	}

	public Demo3(){
		
		String str = "**Hello$$World##";
		
		//		1.
		//查找字符串是否存在
		if(str.contains("Hello")){
			System.out.println("存在");
		}
		//查找某一个字符是否存在
		if(str.indexOf("r") != -1){
			System.out.println("内容存在,字符串位置:" + str.indexOf("r"));
		}
		//从指定位置开始查找,判断某个字符是否存在
		if(str.indexOf("o", 6) != -1)
			System.out.println("内容存在,字符串位置为:" + str.indexOf("o", 6));
		//从结尾位置开始从后往前查找
		if(str.lastIndexOf("W") != -1)
			System.out.println("存在" + str.lastIndexOf("W"));
		if(str.lastIndexOf("W",12) != -1)
			System.out.println("存在::" + str.lastIndexOf("W",12));
		
		//判断字符串是否依指定位置开头
		System.out.println(str.startsWith("**"));
		//从指定位置开始判断是否以指定位置开头
		System.out.println(str.startsWith("$$", 7));
		//判断是否以指定位置结尾
		System.out.println(str.endsWith("##"));
		
		//		2.
		//替换字符串中出现的所有的指定字符
		System.out.println(str.replace("o", "O"));
		//替换字符串中出现的所有子串
		System.out.println(str.replaceAll("o", "&&&&&&"));
		//替换字符串中第一次出现的字符子串
		System.out.println(str.replaceFirst("o", "O"));
		
		//		3.
		//截取从第5号位置开始到结尾的子串
		System.out.println(str.substring(5));
		//截取从5位置到8位置的字符串
		System.out.println(str.substring(5,8));
		
		System.out.println();
		System.out.println();
		System.out.println();
		
		//		4.
		String s = "hello world hello java";
		//将字符串按照空格拆分
		String []a = s.split(" ");
		for(int i = 0;i < a.length; ++ i)
			System.out.println(a[i]);
		
		System.out.println("----------");
		//将字符串拆分成指定元素个数的字符数组
		String []aa = s.split(" ", 3);
		for(int i = 0;i < aa.length;i ++)
			System.out.println(aa[i]);
		
		
		String ss = "Hello Java..... ";
		//判断字符串的长度
		System.out.println(ss.length());
		System.out.println(ss.trim().length());
		//判断字符串是否为空
		System.out.println("".isEmpty());
		System.out.println(ss.isEmpty());
		//字符串字符全部变为大写
		System.out.println(ss.toUpperCase());
		//所有字母都转化为小写
		System.out.println(ss.toLowerCase());
		//字符串连接
		System.out.println(ss.concat("Hello World....."));
	}
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值