2021-01-17

java 第四章常用类

这里写目录标题

	4.1Math类
	4.2Scanner类
	4.3Random类
	4.4String类
	4.5character类
	4.6代码练习

4.1Math类
Math类是用于数学的一个工具类;内部大部分是静态的static;
自带常量:
static double E: 自然对数;
static double PI: 圆周率;
取整方法:
static double ceil(double a):向上取整;
static double floor(double a) :向下取整;
static long round(double a):四舍五入;
static double sin(double a):正弦函数 参数为弧度制;
static double cos(double a):余弦函数;
static double tan(double a):正切函数;
static double toDegrees(double a):弧度转角度;
static double toRadians(double angles):角度转弧度;
static double asin(double a):反正弦函数;
static double acos(double a):反余弦函数;
static double atan(double a):反正切函数;
指数函数:
static double pow(double a,double b):求a的b的次幂;
static double sqrt(double a): 求a的平方根;
static double cbrt(double a) 求a的立方根;
其他方法:
static double abs(double a):求a的绝对值;
static double hypot(double deltX,double deltY):两点间距离;
static double max(a,b):返回a,b间最大的值;
static double min(a,b) :返回a,b间最小的值;
static double random():返回[0,1)间的随机小数;
部分代码演示:
在这里插入图片描述
在这里插入图片描述

4.2Scanner类:
主要用于负责数据输入的类,底层是和IO流相关;
String next():获得直到空格为止的一个字符串;
String nextLine():获取直到回车为止的一个字符串;
int nextInt():获取一个整数:(byte short long);
double nextDouble() 获取小数;
boolean nextBoolean() 获取一个布尔型;
float nextFloat(); 获取一个小数;
在这里插入图片描述

4.3Random类:
主要用于产生随机数,范围根据情况选定;
boolean nextBoolean():随机产生布尔类型值;
double nextDouble():随机产生0.0—1.0间的小数;
double nextInt():随机产生一个0—2^32的整数;
double nextInt(n):随机生成一个[0,n)的整数;
4.4String类:
String是一个类,其描述的是字符串;在Java中所有字符串常量(字符串面量)都是String的一个实例对象。且字符串一旦创建,则不能修改(长度和内容),要改变字符串,不能原地改,只能重新创建一个字符串;
获取相关:
char charAt(int index):获取指定角标的字符;
int indexOf(int ch):获取指定字符在字符串中从左往右第一次出现的地方返回其角标;若不存在则返回-1;
int lastIndex(int ch):获取指定字符在本字符串中从右往左第一次出现的地方,返回其角标;
int indexOf(String str)::获取指定字符串在字符串中从左往右第一次出现的地方返回其角标;
int lastIndexOf(String str):获取指定字符串在本字符串中从右往左第一次出现的地方,返回其角标;
int length():获取字符串的长度;
String[] spilt(String regex):将字符串按照regex的定义进行分割(Regex指的是正则表达式);
String substring(int beginIndex):截取一段字符串,从beginIndex开始到结尾结束;
String substring(int beginIndex,int endIndex):截取一段字符串,从beginIndex开始到endIndex(不包含)结束;
判断相关:
int compareTo(String anotherString):按照字典的顺序比较两个字符串的大小;
boolean contains(String another):判断当前字符串是否包含指定字符串another;
boolean equals(String another): 比较当前字符串与指定字符串内容是否相同;
boolean isEmpty();判断当前字符串是否为空,即length() ==0
boolean startsWith(String prefix):判断该字符串是否以prefix开头;
boolean endsWith(String suffix):判断该字符串是否以suffix结尾;
修改相关:
String toLowerCase():将字符串中所有英文字母改为小写;
String toUpperCase():将字符串中所有英文字母变为大写;
String trim():将字符串中两端多余的空格删掉;
Stringreplace(char oldCh,char newCh):将字符串中的oldCh替换成newCh字符;
代码练习;
统计bcb出现次数:
1. public class Practice{
public static void main(String[] args){
String s1 = “abcbcbcbcbc”;
String s2 = “bcb”;
int count = 0;
String temp = s1;
while(true){
int num = temp.indexOf(s2);
if(num == -1){
break;
}
count++;
temp = temp.substring(num+s2.length()); //切割后面的字符串;
}
System.out.println(count);
}
}
2.在这里插入图片描述
找两个字符串的最长公共子串;
在这里插入图片描述

4.5character类:
character是char基本数据类型的包装类;
static boolean isDigit(char ch):判断是否是数字;
static boolean isLetter(char ch):判断是否是字母;
static boolean isLetterOrDigit(char ch)判断是否是字母或数字;
static boolean isLowerCase(char ch):判断是否是小写字母;
static boolean isUpperCase(char ch):判断是否是大写字母;
static boolean isSpaceChar(char ch):判断是否是空白字母(空格,制表符,回车);
1.18
4.6代码练习:
在这里插入图片描述
import java.util.Scanner;
public class Demo56{
public static void main(String[] args){
//提示用户输入中心到顶点的距离;带入公式计算;
Scanner input = new Scanner(System.in);
double dir = input.nextDouble();
double s = 2dirMath.sin(Math.PI/5);
double area = (5ss)/(4Math.tan(Math.PI/5));
area = Math.round(area
100)/100.0;
System.out.println(area);
}
}

在这里插入图片描述
import java.util.Scanner;
public class Demo57{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print(“输入边数”);
int n =input.nextInt();
System.out.print(“输入边长”);
double s = input.nextDouble();
double area = (nss)/(4*Math.tan(Math.PI/n));
System.out.println(“面积为”+area);
}
}
在这里插入图片描述

在这里插入图片描述
import java.util.Scanner;
public class Demo59{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print(“Enter a decimal value (0 t0 15)”);
int num = input.nextInt();
String str ="";
while(num != 0){
int s =num %16;
//判断余数是否在0-9之间,在则直接与字符串拼接;
if(s <10){
str =s +str;
}else{//在10- 15间则通过先计算出其字母的ASCII值在转换成字母拼接;
str = (char)(s+55)+str;
}
num = num / 16;
}
System.out.println(str);
}
}
在这里插入图片描述
在这里插入图片描述
import java.util.Scanner;
public class Demo60{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
//提示用户分别输入两个字符串;
System.out.print(“Enter string s1:”);
String s1 = input.nextLine();
System.out.print(“Enter string s2:”);
String s2 = input.nextLine();
/*判断短字符串首字母何时与长字符串相等;相等则同时右移一位
继续判断是否相等;直至比对完毕,若途中有不等则直接跳出循环;
内循环正常结束则包含,直接输出包含且程序结束;若外循环正常
结束,则表明不包含,输出结果不包含;为方便输出使用标签flag;
*/
for(int i = 0;i<s1.length();i++){
if(s1.charAt(i) == s2.charAt(0)){
boolean flag = true;
for(int j=i+1,k=1;k<s2.length();j++,k++){
if(s1.charAt(j) != s2.charAt(k)){
flag = false;
break;
}
}
if(flag){
System.out.println(“true”);
return;
}
}
}
System.out.println(“false”);
}
}
在这里插入图片描述
import java.util.Scanner;
public class Demo61{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.nextLine();//提示用户输入字符串;
if(str.length()!= 11){//判断其长度是否符合,不符合直接结束程序;
System.out.println(“invalid”);
return;
}
for(int i = 0;i < str.length();i++){
//判断在下标为3和6的是否为“-”;不是则直接结束程序;
if(i == 3 || i == 6){
if(str.charAt(i) != ‘-’){
System.out.println(“invalid”);
return;
}
}else{//判断其他位置是否是数字,不是写直接结束程序;
if(!Character.isDigit(str.charAt(i))){
System.out.println(“invalid”);
return;
}
}
}//符合条件则输出符合;
System.out.println(“valid”);
}
}
在这里插入图片描述
import java.util.Scanner;
public class Demo66{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
//提示用户输入两行字符串;
System.out.print(“Enter the first string:”);
String a = input.nextLine();
System.out.print(“Enter the second string:”);
String b = input.nextLine();
//若第一个字符不等;则无;
if(a.charAt(0)!= b.charAt(0)){
System.out.println(“无”);
}
boolean flag = true;
//判断从头开始有多少个相等的字符并打印;
for(int i = 0;i<b.length();i++){
if(a.charAt(i)!=b.charAt(i)){
flag = false;
System.out.println(b.substring(0,i));
break;
}
}
//若循环正常结束,则表明长度较短的整个字符串是较长的前缀;打印较短的字符串;
if(flag){
System.out.println(b);
}
}
}
在这里插入图片描述
通过询问生日是否在数字列表内判断某人生日;
import java.util.Scanner;
public class Practice1{
public static void main(String[] args){
int sum = 0;
System.out.println("**************************");
Scanner input = new Scanner(System.in);
System.out.print("\n1\t3\t5\t7\n9\t11\t13\t15\n17\t19\t21\t23\n25\t27\t29\t31\n");
System.out.print(“你的生日是否在上列数字里面,回答(y/n)”);
String a = input.nextLine();
if(a.equals(“y”)){
sum += 1;
}
System.out.print(“2\t3\t6\t7\n10\t11\t14\t15\n18\t19\t22\t23\n26\t27\t30\t31\n”);
System.out.print(“你的生日是否在上列数字里面,回答(y/n)”);
String b = input.nextLine();
if(b.equals(“y”)){
sum += 2;
}
System.out.print(“4\t5\t6\t7\n12\t13\t14\t15\n20\t21\t22\t23\n28\t29\t30\t31\n”);
System.out.print(“你的生日是否在上列数字里面,回答(y/n)”);
String c= input.nextLine();
if(c.equals(“y”)){
sum += 4;
}
System.out.print(“8\t9\t10\t11\n12\t13\t14\t15\n24\t25\t26\t27\n28\t29\t30\t31\n”);
System.out.print(“你的生日是否在上列数字里面,回答(y/n)”);
String d = input.nextLine();
if(d.equals(“y”)){
sum += 8;
}
System.out.print(“16\t17\t18\t19\n20\t21\t22\t23\n24\t25\t26\t27\n28\t29\t30\t31\n”);
System.out.print(“你的生日是否在上列数字里面,回答(y/n)”);
String e = input.nextLine();
if(e.equals(“y”)){
sum += 16;
}
System.out.println(sum);
}
}
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心尘未泯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值