实验目的
1. 了解类库的概念及API的使用方法。
2. 掌握常用类的使用方法。
实验学时 2学时
实验内容
1. 输入两个字符串str1、str2,统计字符串str2出现在str1中的次数。
如:str1=”aaas lkaaas” ,str2=” as” ,则应输出 2
提示:文本输入
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); //定义扫描键盘输入的对象
String s = sc.nextLine(); //从键盘读入一行文本
...
sc.close();
}
package 实验七;
import java.util.Scanner;
public class 实验七1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int sum=0;
System.out.println("请输入第一个字符串:");//输入第一个字符串
String str1=input.nextLine();
System.out.println("请输入第二个字符串:");//输入第二个人字符串
String str2=input.nextLine();
int a=str1.indexOf(str2);//查找str2在str1中第一次出现的位置
while(a!=-1) {
sum++;//统计次数
a=str1.indexOf(str2,a+1);//查找str2在str1重复出现的次数
}
System.out.println("第二个字符串在第一个字符串中出现了"+sum+"次!");
}
}
2. 从键盘输入一串字符,输出有多少个不同的字符、每个字符出现的次数。
package 实验七;
import java.util.Scanner;
public class 实验七2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("输入一行字符串!");
Scanner input =new Scanner(System.in);
String str=input.nextLine();
StringBuffer k=new StringBuffer(str);//插入字符串缓冲区StringBuffer
int length=k.length();//字符总数
System.out.println("共有"+length+"个字母!");
String a;//声明单个字符
int index,sum;
for(int i=0;i<k.length();) {
sum=0;
a=k.substring(0,1);//截取单个字符
index=k.indexOf(a);//搜索单个字符在整个字符中出现的位置
while(index!=-1) {
sum++;
k.deleteCharAt(index);//删除字符
index=k.indexOf(a,index);//统计次数
}
System.out.println(a+"字母有"+sum+"个");
}
}
}
3. 编写一个 Java 程序,将用户输入的句子当中每一个单词的第一个字母大写。
package 实验七;
import java.util.Scanner;
public class 实验七3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个句子:");
Scanner input =new Scanner(System.in);
String str=input.nextLine();//输入想要输入的句子
String str1=" ";//最后的输出
String[]a=str.split(" ");//将句子按照空格进行分割
for(int i=0;i<a.length;i++) {//遍历字符串,将每个字符串数组中的每个单词首字母替换为大写
a[i]=a[i].replace(a[i].charAt(0),a[i].toUpperCase().charAt(0));
str1+=a[i]+" ";//将替换后的字符串拼接到空串的后面
}
System.out.println("修改后的句子为:"+str1.trim());
}
}
4. 输入一个八进制数字串(在整型数据范围内),分别以2进制、10进制、16进制输出。
提示:Integer.parseInt("100",8); //将8进制100转换成十进制数
Integer.toBinaryString(100); //将十进制整数100转换成二进制数
package 实验七;
import java.util.Scanner;
public class 实验七4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("输入一个八进制数字串(在整型数据范围内):");
String a=input.nextLine(); //输入原字符串
int b=Integer.parseInt(a); //原字符串转换为数字
System.out.println("2进制为:"+Integer.toBinaryString(b)); //将b转换为2进制数
System.out.println("10进制为:"+Integer.parseInt(a,8)); //将b转换为10进制数
System.out.println("16进制为:"+Integer.toHexString(b)); //将b转换为16进制数
}
}
5. 编写一段可生成一个随机字母的程序
package 实验七;
import java.util.Arrays;
public class 实验七5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("生成一个随机字母为:");
char a[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
//建立一个包含26个大小写字母的数组
char ch[]=new char[1]; { //一个字母
for(int i=0;i<1;i++)
{
int b;
b=(int)(Math.random()*(a.length)); //生成一个随机数
ch[i]=a[b]; //根据位置找到相应字母
}
System.out.println(Arrays.toString(ch)); //数字类型转换为字符串
}
}
}
6. 编程求100天以后是几月几号星期几。
package 实验七;
import java.time.LocalDate;
public class 实验七6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] weekday = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; //建立星期数组
LocalDate today = LocalDate.now(); //获取当前时间
System.out.println("今天是:" + today + "," + weekday[today.getDayOfWeek().getValue()-1]); //输出今天的格式化时间
LocalDate hundredDayLater = LocalDate.now().plusDays(100); //获取100天后的时间
System.out.println("100天后是:" + hundredDayLater + "," + weekday[hundredDayLater.getDayOfWeek().getValue()-1]); //输出100天后的格式化时间
}
}
代码结果:
今天是:2022-05-23,星期一
100天后是:2022-08-31,星期三