Java常用类之String类练习

时间:2023-03-09 03:24:20
Java常用类之String类练习

1.编程. 已知字符串:”this is a test of java”.

按要求执行以下操作:

(1) 统计该字符串中字母s出现的次数

(2) 取出子字符串”test”

(3) 将本字符串复制到一个字符数组Char[] str中.

(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。

(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)

(6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台

代码:

package day11Homework;

import java.util.Arrays;

public class Test1 {
public static void main(String[] args){
String string="this is a test of java"; // (1) 统计该字符串中字母s出现的次数
//first
char[] c=string.toCharArray();
int count=0;
for (char d : c) {
if(d=='s'){
count++;
}
}
System.out.println("s出现的次数"+count);
//second
String[] strs1=string.split("s");
int count2=0;
count2=strs1.length-1;
System.out.println("s出现的次数"+count2);
//third // (2) 取出子字符串"test"
System.out.println("截取test:"+string.subSequence(string.indexOf("t",1), string.lastIndexOf("t")+1));
// (3) 将本字符串复制到一个字符数组Char[] str中.
char[] c2=string.toCharArray();
// (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
String[] strs2=string.split(" ");
for(int i=0;i<=strs2.length-1;i++){
//方法一:
//strs2[i]=strs2[i].replaceFirst(String.valueOf(strs2[i].charAt(0)),String.valueOf(strs2[i].charAt(0)).toUpperCase());
//方法二:
strs2[i]=Character.toUpperCase(strs2[i].charAt(0))+strs2[i].substring(1);
}
System.out.println(Arrays.toString(strs2));
// (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
StringBuffer stringBuffer=new StringBuffer("this is a test of java");
System.out.println(stringBuffer.reverse());
//for
for(int i=string.length()-1;i>=0;i--){
System.out.print(string.charAt(i));
}
System.out.println();
// (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的英文单词,并输出到控制台
String[] strs3=string.split(" ");
System.out.println(Arrays.toString(strs3));
}
}

运行结果:

Java常用类之String类练习

2 .如下字符串:

01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21

分割出每个人的信息,样式如下:

*01 张三 20

*02 李四 18

*…..

*创建Student类,属性:学号 姓名 年龄

1将这些Student对象放进数组中

2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)

3.计算所有学生的平均年龄,最大年龄,最小年龄

4.如果存在名字叫张三的将名字改为张兵

代码:

学生类


public class Student {
private String xueHao;
private String name;
private int age; public String getXueHao() {
return xueHao;
}
public void setXueHao(String xueHao) {
this.xueHao = xueHao;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} public Student() {} public Student(String xueHao,String name,int age){
this.xueHao=xueHao;
this.name=name;
this.age=age;
}
}

测试类:

import java.util.*;
public class Test3 {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
String str="01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21";
String[] strs=str.split("[#*]");
System.out.println("1.按要求打印如下:");
for(int i=0;i<strs.length;i+=3){
System.out.print(strs[i]+" "+strs[i+1]+" "+strs[i+2]);
System.out.println();
} //建立学生数组
Student[] arr=new Student[strs.length/3];
int count=0;
for(int i=0;i<arr.length;i++){
arr[i]=new Student(strs[count],strs[count+1],Integer.parseInt(strs[count+2]));
count+=3;
}
System.out.println("2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息:");
System.out.println("请输入学生姓名:");
String name=input.next(); for(int i=0;i<arr.length;i++){
if(name.equals(arr[i].getName())){
System.out.print(arr[i].getXueHao()+" "+arr[i].getName()+" "+arr[i].getAge());
}
}
System.out.println();
//3.计算所有学生的平均年龄,最大年龄,最小年龄
System.out.println("3.计算所有学生的平均年龄,最大年龄,最小年龄:");
int ageSum=0;
int ageMax=arr[0].getAge();
int ageMin=arr[0].getAge();
for(int i=0;i<arr.length;i++){
ageSum+=arr[i].getAge();
ageMax=ageMax>arr[i].getAge()?ageMax:arr[i].getAge();
ageMin=ageMin<arr[i].getAge()?ageMin:arr[i].getAge();
}
System.out.println("所有学生的平均年龄:"+ageSum/arr.length);
System.out.println("所有学生中的最大年龄:"+ageMax);
System.out.println("所有学生中的最小年龄:"+ageMin);
//4.如果存在名字叫张三的将名字改为张兵
System.out.println("4.如果存在名字叫张三的将名字改为张兵:");
for(int i=0;i<arr.length;i++){
String temp="张三";
if(temp.equals(arr[i].getName())){
arr[i].setName("张兵");
System.out.println("arr["+i+"]="+arr[i].getName());
}
} input.close();
}
}

运行结果:

Java常用类之String类练习