实验七java的语言基础

该文展示了几个Java编程的基础练习,包括统计子字符串出现次数,计算字符串中不同字符的个数和频率,首字母大写的单词转换,八进制数转二进制、十进制、十六进制,以及生成随机字母和计算未来日期与星期。这些例子涵盖了字符串处理、数学运算和日期时间类的API使用。
摘要由CSDN通过智能技术生成

实验目的

1. 了解类库的概念及API的使用方法。

2. 掌握常用类的使用方法。

实验内容

1.题目1

(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();

}

  1. 代码

package one;
import java.util.Scanner;//运用scanner方法,用来从控制台写入数据
public class onetest {
   public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);//键盘输入数据
       int sum=0;//初始数为0,用来统计字符串str2出现在str1中的次数
       System.out.println("请输入第一串字符串:");
       String str1=sc.nextLine();//输入第一串字符
       System.out.println("请输入第二串字符串:");
       String str2=sc.nextLine();//输入第二串字符
       int a=str1.indexOf(str2);//判断str1中是否含有str2,如果没有则返回-1
       while(a!=-1){//while语句来判断str2在str1中出现的次数
           sum++;//次数+1
           a=str1.indexOf(str2,a+1);//如果str1中还含有str2,则+1
       }
       System.out.println("字符串str2出现在str1中的次数为:"+sum+"次。");
   }
}

(3)运行结果

   

 

2.题目2

(1)题目

从键盘输入一串字符,输出有多少个不同的字符、每个字符出现的次数。

(2)代码

package two;
import java.util.Scanner;//运用scanner方法,用来从控制台写入数据
public class twotest{
   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);//键盘输入数据
       System.out.println("请输入字符串:");
       String str = sc.nextLine();//键盘输入字符串
       StringBuffer s = new StringBuffer(str);//将String类转化为StringBuffer类
       String str1;//定义一个字符串str1
       int sum,i;//定义一个整型sum来记录数据,i用来索引字符
       int m = 0;
       for(int j=0 ;j<s.length();) {//对字符串循环
           sum = 0;
           str1 = s.substring(0, 1);//截取一个字符
           i = s.indexOf(str1);//对这个字符索引
           m++;
           while(i != -1) {
               sum++;//如果字符在出现次数+1
               s.deleteCharAt(i);//删除字符
               i = s.indexOf(str1,i);//统计次数
           }
           System.out.println("字符:"+str1+":"+sum);
       }
       System.out.println("字符种类总个数为:"+m+"个");
       sc.close();//关闭方法
   }
}

(3)运行结果   

 

3.题目3

(1)题目

编写一个 Java 程序,将用户输入的句子当中每一个单词的第一个字母大写。

(2)代码

package three;
import java.util.Scanner;//运用scanner方法,用来从控制台写入数据
public class threetest {
       public static void main(String[] args) {
           Scanner sc = new Scanner(System.in);//定义扫描键盘输入的对象
           System.out.println("请输入一个句子");
           String s1 = sc.nextLine();//从键盘输入一个句子
           String[] str1=s1.split(" ");//用空格来分割字符串,用字符数组接收
           for(int i=0;i<str1.length;i++) {//for循环,遍历数组
               String[] str2=new String[str1.length];//创建一个新的字符数组接收改变后的数组
               str2[i]=str1[i].substring(0,1).toUpperCase()+ str1[i].substring(1);// 第一个字母转化为大写,第一个字母后面的字符不变
               System.out.print(str2[i]+" ");//输出结果
           }
       }
   }

(3)运行结果   

 

4.题目4

(1)题目

输入一个八进制数字串(在整型数据范围内),分别以2进制、10进制、16进制输出。

提示:Integer.parseInt("100",8); //将8进制100转换成十进制数

          Integer.toBinaryString(100); //将十进制整数100转换成二进制数

(2)代码

package four;
import java.util.Scanner;//运用scanner方法,用来从控制台写入数据
public class fourtest {
       public static void main(String[] args) {
           Scanner in=new Scanner(System.in);//定义扫描键盘输入的对象
           System.out.println("输入一个八进制数字串:");
           String a=in.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进制数
       }
   }

(3)运行结果  

 5.题目5

(1)题目

编程输出一个随机字母。

(2)代码

package five;
public class fivetest {
   public static void main(String[] args) {
       //A的ASCII码是65,a的ASCII码是97
       int i = (int) (Math.random() * 2 + 1);//生成1-2的随机数,并转换为整型
       int j;//定义一个整型j,用来输出大小写字母
       if (i == 1) {//如果i为1
           j = (int) (Math.random() * 26 + 65);//j为随机大写字母的ascii码
       } else {//否则
           j = (int) (Math.random() * 26 + 97);//j为随机小写字母的ascii码
       }
       System.out.println((char) (j));//输出j的字符形式
   }
}

(3)运行结果

 

 

 6.题目6

(1)题目

编程输出100天以后的日期和星期。

(2)代码

package six;
import java.text.SimpleDateFormat;//用于以区域设置敏感的方式格式化和解析日期
import java.util.Calendar;//操作日历字段,与特定瞬间之间的转换提供了方法
import java.util.Date;//引用时间日期
public class sixtest {
   public static void main(String[] args) {
       Date currentDate = new Date();//获取当前日期
       System.out.println("当前日期为:" + currentDate);
       Calendar calendar = Calendar.getInstance();//创建Calendar对象并设置日期为当前日期
       calendar.setTime(currentDate);
       calendar.add(Calendar.DAY_OF_YEAR, 100);//在现在的日期上加上100天
       Date futureDate = calendar.getTime();//获取100天后的日期并输出
       SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");//获取100天后的日期并输出
       System.out.println("100天后的日期:" + dateFormat.format(futureDate));
       SimpleDateFormat weekFormat = new SimpleDateFormat("E");//获取100天后的星期并输出
       System.out.println("100天后是星期:" + weekFormat.format(futureDate));
   }
}

(3)运行结果

 

实验小结

1. 了解了类库的概念及API的使用方法。

2. 掌握了常用类的使用方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值