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
下面代码演示:
package com.wen_02;
public class StringDemo1 {
public static void main(String[] arg) {
//创建对象
String s = "hello,java";
//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(2));
System.out.println("--------");
//int indexOf(String str):获取str在字符串对象中第一次出现的索引
System.out.println(s.indexOf("l"));
System.out.println(s.indexOf("ava"));
System.out.println(s.indexOf("fa")); //这里-1,是因为字符串中没有f
System.out.println("--------");
//String substring(int start,int end):从start开始,到end结束截取字符串
System.out.println(s.substring(0, s.length()));
System.out.println(s.substring(3,8));
}
}
输出结果:
10
--------
h
l
--------
2
7
-1
--------
hello,java
lo,ja
练习:
1、遍历字符串(获取字符串中的每一个字符)
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 x=0; x<5; x++) {
System.out.println(s.charAt(x));
}
System.out.println("---------");
//用length()方法获取字符串的长度
for(int x=0; x<s.length(); x++) {
System.out.println(s.charAt(x));
}
}
}
2、统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
分析:
A:键盘录入一个字符串数据
B:定义三个统计变量,初始化值都是0
C:遍历字符串,得到每一个字符
D:拿字符进行判断
假如ch是一个字符。
大写:ch>='A' && ch<='Z'
小写:ch>='a' && ch<='z'
数字:ch>='0' && ch<='9'
E:输出结果
package com.wen_02;
import java.util.Scanner;
public class StringTest {
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 x=0; x<s.length(); x++) {
char ch = s.charAt(x);
//拿字符进行判断
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+"个");
}
}
输出统计数据不一,可以试试:
请输入一个字符串数据:
HelloWorld123!
该字符!非法
大写字符:2个
小写字符:8个
数字字符:3个