String类的获取功能,也是通过相应的成员方法实现的,可以获取字符串对象的长度、指定字符串的索引、指定位置的字符、指定位置的字符串。常用的获取功能如下。
一个示例:
package cn.it_03;
/*
* String类的获取功能:
* int length():获取字符串的长度,也即是字符串中字符的个数
* char charAt(int index):获取指定索引处的字符
* int indexOf(String str):获取str在字符串对象中第一次出现的索引
* String substring(int start):获取字符串对象中,从索引start开始的字符串
* String substring(int start,int end):获取字符串对象中,从索引start开始,到索引end结束的字符串,包括start,不包括end
*/
public class StringDemo {
public static void main(String[] args) {
//创建字符串对象
String s="helloworld";
//int length():获取字符串的长度,也即是字符串中字符的个数
System.out.println(s.length());
System.out.println("-------------------");
//char charAt(int index):获取指定索引处的字符
System.out.println(s.charAt(0));
System.out.println(s.charAt(1));
System.out.println("-------------------");
//int indexOf(String str):获取str在字符串对象中第一次出现的索引
System.out.println(s.indexOf("l"));
System.out.println(s.indexOf("owo"));
System.out.println(s.indexOf("as"));//-1:表示未出现
System.out.println("-------------------");
//String substring(int start):获取字符串对象中,从索引start开始的字符串
System.out.println(s.substring(0));
System.out.println(s.substring(5));
System.out.println("-------------------");
//String substring(int start,int end):获取字符串对象中,从索引start开始,到索引end结束的字符串,包括start,不包括end
System.out.println(s.substring(0, s.length()));
System.out.println(s.substring(3, 5));
}
}
结果:
应用1:遍历字符串(获取字符串中的每一个字符)
package cn.it_03;
/*
* 遍历字符串 (获取字符串中的每一个字符)
*
*/
public class StringTest {
public static void main(String[] args) {
//创建字符串对象
String s="abcde";
//原始做法
System.out.println(s.charAt(0));
System.out.println(s.charAt(1));
System.out.println(s.charAt(2));
System.out.println(s.charAt(3));
System.out.println(s.charAt(4));
System.out.println("---------------");
//用for循环改进
for(int i=0;i<5;i++) {
System.out.println(s.charAt(i));
}
System.out.println("---------------");
//用length()来获取字符串对象的长度
for(int i=0;i<s.length();i++) {
System.out.println(s.charAt(i));
}
}
}
结果:
应用2:统计字符串中大写、小写及数字字符个数
package cn.it_03;
import java.util.Scanner;
/*
* 统计字符串中大写、小写、数字字符的个数
*
* 分析:
* (1)键盘录入一个字符串数据
* (2)定义三个统计变量,初始化值为0
* (3)遍历字符串,得到每一个字符
* (4)拿字符进行判断:
* 假如ch是一个字符。
* 大写:ch>='A'&&ch<='Z'
* 小写:ch>='a'&&ch<='z'
* 数字:ch>='0'&&ch<='9'
* (5)输出结果
*/
public class StringTest2 {
public static void main(String[] args) {
//键盘录入一个字符串数据
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串数据:");
String s=sc.nextLine();
//定义三个统计变量,初始化值为0
int bigCount=0;
int smallCount=0;
int numberCount=0;
//遍历字符串,得到每一个字符
for(int i=0;i<s.length();i++) {
char ch=s.charAt(i);
if(ch>='A'&&ch<='Z') {
bigCount++;
}else if(ch>='a'&&ch<='z'){
smallCount++;
}else if(ch>='0'&&ch<='9') {
numberCount++;
}else {
System.out.println("该字符"+ch+"非法");
}
}
//输出结果
System.out.println("大写字符:"+bigCount+"个");
System.out.println("小写字符:"+smallCount+"个");
System.out.println("数据字符:"+numberCount+"个");
}
}
结果: