第五章 Java API(一)

5.1.1String类的初始化

在使用String类进行字符串操作之前,首先需要对String类进行初始化。

在Java中可以通过一下两种方式: 

    1.使用字符串常量直接初始化一个String对象,具体代码如下:

     String str1=“abc”;   //常量池,即”abc“表示一个字符串常量

 2.使用String类的构造方法初始化字符串对象,String类的常见构造方法如下:

String类的常见构造方法
方法声明功能描述
String()创建一个内容为空的字符串
String(String value)根据指定的字符串内容创建对象
String(char[] value)根据指定的字符数组创建对象
String(byte[] bytes)根据指定的字节数组创建对象
public class Example01 {
	public static void main(String[] args) throws Exception {
		// 创建一个空的字符串
		String str1 = new String();
		// 创建一个内容为abcd的字符串
		String str2 = new String("abcd");
		// 创建一个内容为字符数组的字符串
		char[] charArray = new char[] { 'D', 'E', 'F' };
		String str3 = new String(charArray);
         // 创建一个内容为字节数组的字符串
         byte[] arr = {97,98,99};		
		String str4 = new String(arr);
		System.out.println("a" + str1 + "b");
		System.out.println(str2);
		System.out.println(str3);
         System.out.println(str4);
	}
}

运行结果→

ab

abcd

DEF

abc

 5.1.2 String类的常见操作

String类的常用方法
方法声明功能描述
nt indexOf(int ch)返回指定字符ch在字符串中第一次出现位置的索引
int lastlndexOf(int ch)

返回字符ch在字符串中最后一次出现位置的索引

int indexOf(String str)

返回指定子字符串str在字符串第一次出现位置的索引

int lastlndexOf(String str)返回指定子字符串str在此字符串中最后一次出现位置的索引
char charAt(int index)返回字符串index位置上的字符,其中index的取值范围是0~(字符串长度-1)
Boolean endsWith(String suffix)判断此字符串是否以指定的字符串结尾
int length()判断此字符串的长度

boolean equals(Object anObject)

将此字符串与指定的字符串比较
boolean isEmply()判断字符串长度是否为0,如果为0,则返回ture;反之,则返回为false
boolean startsWith(String prefix)判断此字符串是否以指定的字符串开始
boolean contains(CharSrquence cs)判断此字符串中是否包含指定的字符序列
String toLowerCase()使用默认语言环境的规则将String中的所有字符都转换为小写字母
String toUpperCase()使用默认语言环境的规则将String中的所有字符都转换为大写字母
static String valueOf(int i)将int变量i转换为一个字符数组
String replace(CharSequence oldstr,CharSequence newstr)返回一个新的字符串,它是通过用newstr替换此字符串出现的所有oldstr得到的
String[]split(String regex)根据参数regex将原来的字符串分割为若干个子字符串
String substring(int beginlndex)返回一个新字符串,它包含从指定的beginlndex处开始,直到此字符串末尾的所有字符
String substring(int beginlndex,int endlndex)返回一个新字符串,它包含从指定的beginlndex处开始,直到索引endlndex-1处的所有字符
String trim()返回一个新字符串,它去除了原字符串首尾的空格

1.字符串的获取功能

案例学习5-2

public class Example01 {
	public static void main(String[] args) throws Exception {
		// 创建一个空的字符串
		String str1 = new String();
		// 创建一个内容为abcd的字符串
		String str2 = new String("abcd");
		// 创建一个内容为字符数组的字符串
		char[] charArray = new char[] { 'D', 'E', 'F' };
		String str3 = new String(charArray);
         // 创建一个内容为字节数组的字符串
         byte[] arr = {97,98,99};		
		String str4 = new String(arr);
		System.out.println("a" + str1 + "b");
		System.out.println(str2);
		System.out.println(str3);
         System.out.println(str4);
	}
}

2.字符串的转换操作

案例学习5-3

public class Example03 {
	public static void main(String[] args) {
		String str = "abcd";
		System.out.print("将字符串转为字符数组后的结果:");
		char[] charArray = str.toCharArray(); // 字符串转换为字符数组
		for (int i = 0; i < charArray.length; i++) {
			if (i != charArray.length - 1) {
				// 如果不是数组的最后一个元素,在元素后面加逗号
				System.out.print(charArray[i] + ",");
			} else {
				// 数组的最后一个元素后面不加逗号
				System.out.println(charArray[i]);
			}
		}
		System.out.println("将int值转换为String类型之后的结果:" + 
         String.valueOf(12));
		System.out.println("将字符串转换成大写之后的结果:" + 
         str.toUpperCase());
         System.out.println("将字符串转换成小写之后的结果:" + 
		str.toLowerCase());
	}
}

3.字符串的替换和去除空格操作

案例学习5-4

public class Example04 {
	public static void main(String[] args) {
		String s = "itcast";
		// 字符串替换操作
		System.out.println("将it替换成cn.it的结果:" + s.replace("it", 
         "cn.it"));
		// 字符串去除空格操作
		String s1 = "     i t c a s t     ";
		System.out.println("去除字符串两端空格后的结果:" + s1.trim());
		System.out.println("去除字符串中所有空格后的结果:" + s1.replace(" ", 
         ""));
	}
}

 4.字符串的判断操作

案例学习5-5

public class Example05 {
	public static void main(String[] args) {
		String s1 = "String"; // 声明一个字符串
		String s2 = "Str";
		System.out.println("判断是否以字符串Str开头:" + 
                                 s1.startsWith("Str"));
		System.out.println("判断是否以字符串ng结尾:" + s1.endsWith("ng"));
		System.out.println("判断是否包含字符串tri:" + s1.contains("tri"));
		System.out.println("判断字符串是否为空:" + s1.isEmpty());
		System.out.println("判断两个字符串是否相等" + s1.equals(s2));
	}
}

5.字符串的截取和分割

案例学习5-6

public class Example06 {
	public static void main(String[] args) {
		String str = "石家庄-武汉-哈尔滨";
		// 下面是字符串截取操作
		System.out.println("从第5个字符截取到末尾的结果:" + 
                                  str.substring(4));
		System.out.println("从第5个字符截取到第6个字符的结果:" + 
                                  str.substring(4, 6));
		// 下面是字符串分割操作
		System.out.print("分割后的字符串数组中的元素依次为:");
		String[] strArray = str.split("-"); // 将字符串转换为字符串数组
		for (int i = 0; i < strArray.length; i++) {
			if (i != strArray.length - 1) {
				// 如果不是数组的最后一个元素,在元素后面加逗号
				System.out.print(strArray[i] + ",");
			} else {
				// 数组的最后一个元素后面不加逗号
				System.out.println(strArray[i]);
			}
		}
	}
}

注:字符串角标越界异常~

String字符串在获取某个字符时会用到字符的索引,当访问字符串中的字符时,如果字符的索引不存在,则会发生StringIndexOutOfBoundsRxception(字符串角标越界异常)

案例演示异常5-7

public class Example07 {
	public static void main(String[] args) {
		String s = "itcast"; 
		System.out.println(s.charAt(8));  
	}
}

运行结果→

 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of          range: 8
    at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
    at java.base/java.lang.String.charAt(String.java:1512)
    at Medo.exple.main(exple.java:7)

通过运行结果来看,访问字符串中的字符时,不能超过字符的索引范围,否则会出现异常,这与数字中的角标越界异常非常相似 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值