黑马程序员---String类

------- android培训java培训、期待与您交流! --------

String类,描述字符串对象的类,String是不可变对象,字符串一旦创建完毕,不可改变。

  字符串的底层实现是字符数组,"asdfasfafef"  数组被final修饰了

字符串的常见的方法回顾

构造方法:

l 将字节数组转成字符串 String(byte[] bytes) 查询本机默认编码表GBK

l 将字节数组转成字符串 String(byte[] bytes,int offset,int length)开始下标,个数

   将字符数组转成字符串 String(char[] ch)直接将数组中内容变成字符串,不查询编码表

   将字符数组转成字符串 String(char[] ch,int offset,int length)开始下标,

 

public class Demo {
	public static void main(String[] args) {
		byte []by=new byte[]{123,43,54,62,97,98,99,100,101,102};
		//构造方法1  	 把数组完整的放入String中
		String s1=new String(by);
		//构造方法2  	把数组 从下标3开始  长度为6的一部分放入String中 
		String s2=new String(by,4,6);

		System.out.println(s1);
		System.out.println(s2);
	}
}


运行结果:

{+6>abcdef
abcdef


对于char[]数组也是一样:

 

public class Demo {
	public static void main(String[] args) {

		char [] ch=new char[]{'1','2','3','4','5','6','7','8','9','0'};
		//构造方法1  	 把数组完整的放入String中
		String s1=new String(ch);
		//构造方法2  	把数组 从下标3开始  长度为6的一部分放入String中 
		String s2=new String(ch,4,6);
			
		System.out.println(s1);
		System.out.println(s2);
	}
}


运行结果如下:

1234567890
567890


判断方法:返回boolean

l 判断两个字符串是否完全相等 boolean equals(Object obj)

判断两个字符串是否完全相等,忽略大小写 boolean equalsIgnoreCase(String s)

    判断是否以一个字符串开头 , boolean startsWith(String s)

    判断是否以一个字符串结尾 , boolean endsWith(String s)

l 判断一个字符串是否包含另一个字符串 boolean contains(String s)

    判断字符串中是否为空  boolean isEmpty() 开始于JDK1.6版本

public class Demo2 {
	public static void main(String[] args) {
		String s1=new String("abcd");
		String s2="abcd";
		String s3="ABcd";
		boolean b=s1.equals(s2);
		System.out.println(b);
		System.out.println("========================");
		System.out.println(s1.equals(s3));
		System.out.println(s1.equalsIgnoreCase(s3));
	}
}


 

运行结果:
true
========================
false
true

String 复写了 Object equals 方法,比较的是字符串的内容
public class Demo2 {
	public static void main(String[] args) {
		String s1=new String("abcd");
		String s2="ab";
		String s3="ABcd";
		//判断s1是否以s2开头
		System.out.println(s1.startsWith(s2));
		//判断s1是否以“d”结尾
		System.out.println(s1.endsWith("acd"));
		System.out.println("========================");
		//判断s1是否包含s2
		System.out.println(s1.contains(s2));
		//判断s2是否为空
		System.out.println(s2.isEmpty());
	}
}

运行结果:
true
false
========================
true
false

 

获取方法:

l 获取指定位置上的单个字符  char chatAt(int index)

l 获取指定字符在字符串中第一次出现的下标 int indexOf(char ch)

l 获取指定字符在字符串中第一次出现的下标 int indexOf(char ch,int fromindex)

l 获取指定字符串在字符串中第一次出现的下标 int indexOf(String s)

l 获取指定字符串在字符串中第一次出现的下标 int indexOf(String s, ,int fromindex)

获取字符在字符串中最后一次出现的下标,反向索引 lastindexOf(char ch)

l 获取字符串的一部分 返回新的String  substring(int start,int end)包含头,不包含尾

l 获取字符串的一部分 返回新的String  substring(int start)包含头,后面的全要

l 获取字符串中字符的个数 int length()  

 
public class Demo2 {
	public static void main(String[] args) {
		String s1=new String("abcd.java");
		String s2="abadsfsbasfdabafagas";
		String s3="ba";
		//获取s1的下标为1的字符 赋值给c
		char c=s1.charAt(1);
		System.out.println(c);
		//获取字符's'在s2中第一次出现的位置(角标)
		int i=s2.indexOf('s');
		System.out.println(i);
		//获取字符串s3在s2中从角标为6开始 第一次出现的位置(角标)
		System.out.println(s2.indexOf(s3,6));
		//获取字符串s3在s2中最后一次出现的位置(角标)
		System.out.println(s2.lastIndexOf(s3));
		//打印是s1下角标为4以后的字符
		System.out.println(s1.substring(4));
		//打印s2的长度
		System.out.println(s2.length());
		
	}
}

运行结果:
b
4
7
13
.java
20

转换方法:

l 字符串转成字节数组  byte[]  getBytes()

l 字符串转成字符数组  char[]  toCharArray()

l 字符串转成大写字母  String  toUpperCase()

l 字符串转成小写字母  String  toLowerCase()

     将其他数据类型转成字符串  static String valueOf()

 
public class Demo3 {
	public static void main(String[] args) {
		String s="abcdefABC";
		
		//将字符串s转换成byte数组
		byte[] b=s.getBytes();
		for (int i = 0; i < b.length; i++) {
			System.out.print(b[i]+"..");
		}		
		System.out.println();
		//将字符串s转换成char数组
		char [] c= s.toCharArray();
		System.out.println(c);
		//打印s的字母转换成大写格式
		System.out.println(s.toUpperCase());
		//打印s的字母转换成小写格式
		System.out.println(s.toLowerCase());
	}
}

运行结果:
 
97..98..99..100..101..102..65..66..67..
abcdefABC
ABCDEFABC
abcdefabc

其他方法:

l 切割字符串,返回字符串数组 String[] split()

l 替换字符串,返回新的字符串 String replace()

l 去掉字符串两端的空格,返回新的字符串String trim()

l 比较字符串谁大谁小 int compareTo(String s) 按照字典顺序比较

 
public class Demo4 {
	public static void main(String[] args) {
		String s ="I love java !";
		//切割字符串
		String[] c=s.split(" ");
		for (int i = 0; i < c.length; i++) {
			System.out.println(c[i]);
		}
		//替换字符
		String s1=s.replace("I","我" );
		System.out.println(s1);	
	}
}

运行结果:
I
love
java
!
我 love java !

public class Demo5 {
	public static void main(String[] args) {
		String userName = "   wangyung.123    ";
		String userName2="  zhangsan    1   ";
		System.out.println(userName);
		System.out.println(userName2);
		System.out.println("==============================");
		//去除前后空格
		userName=userName.trim();
		userName2=userName2.trim();
		
		System.out.println(userName);
		System.out.println(userName2);
		//按照字典顺序比较两个字符串
		int i=userName.compareTo(userName2);
		System.out.println(i);
	}
}

运行结果:
 
   wangyung.123    
  zhangsan    1   
==============================
wangyung.123
zhangsan    1
-3

 

------- android培训java培训、期待与您交流! -------- 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值