Java基础-常用类

文章目录

    • 1.Math类
    • 2.System类
        • 1.exit
          • 代码
        • 结果
        • 2.arraycopy
          • 参数解释
          • 代码
          • 结果
        • 3.currentTimeMillens
          • 代码
          • 结果
    • 3.大数处理方案
        • 基本介绍
        • BigInteger类
          • 介绍
          • 代码
          • 结果
        • BigDecimal类
          • 介绍
          • 代码
          • 结果
    • 4.日期类
        • 对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/img_convert/6d285b7dfa10bddec5ba6b8b3c59776f.png)
        • 第一代日期类
          • 代码
          • 结果
        • 第二代日期类(Calendar)
          • 基本介绍
          • 代码
          • 结果
        • 第三代日期类
          • 基本使用
          • 进阶使用
    • 5.章节练习
        • 练习一
          • 题目
          • 代码
          • 结果
        • 练习二
          • 题目
          • 代码
          • 结果
        • 练习三
          • 题目
          • 代码
          • 结果
        • 练习四
          • 题目
          • 代码
          • 结果
        • 练习五
          • 题目
          • 代码
          • 结果
  • 常用类
    • 1.Math类
    • 2.System类
        • 1.exit
          • 代码
        • 结果
        • 2.arraycopy
          • 参数解释
          • 代码
          • 结果
        • 3.currentTimeMillens
          • 代码
          • 结果
    • 3.大数处理方案
        • 基本介绍
        • BigInteger类
          • 介绍
          • 代码
          • 结果
        • BigDecimal类
          • 介绍
          • 代码
          • 结果
    • 4.日期类
        • 对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/img_convert/9e65cace4e31b884a7fa4185678dbe73.png)
        • 第一代日期类
          • 代码
          • 结果
        • 第二代日期类(Calendar)
          • 基本介绍
          • 代码
          • 结果
        • 第三代日期类
          • 基本使用
          • 进阶使用
    • 5.章节练习
        • 练习一
          • 题目
          • 代码
          • 结果
        • 练习二
          • 题目
          • 代码
          • 结果
        • 练习三
          • 题目
          • 代码
          • 结果
        • 练习四
          • 题目
          • 代码
          • 结果
        • 练习五
          • 题目
          • 代码
          • 结果

1.Math类

/*** @author 孙显圣* @version 1.0*/
public class Math_ {public static void main(String[] args) {//1.abs 绝对值int abs = Math.abs(-9);System.out.println(abs);//2.pow 求幂double pow = Math.pow(2, 10);System.out.println(pow);//3.ceil 向上取整,返回>=该参数的最小整数double ceil = Math.ceil(3.1);System.out.println(ceil);//4.floor 向下取整,返回<=该参数的最小整数double floor = Math.floor(3.8);System.out.println(floor);//5.round 四舍五入long round = Math.round(-5000.67);System.out.println(round);//6.sqrt 求开方double sqrt = Math.sqrt(9.0);System.out.println(sqrt);//求2-7的随机数for (int i = 0; i < 10; i++) {System.out.println(2 + (int) (Math.random() * 6)); //2 + 0到5就是2到7}}
}

2.System类

image-20240101163902484

1.exit
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class System_ {public static void main(String[] args) {// exit 退出当前程序System.out.println("1");System.exit(0); //正常情况退出System.out.println("2");}
}
结果

image-20240101163945623

2.arraycopy
参数解释

image-20240101164126728

代码
package system_;import java.util.Arrays;/*** @author 孙显圣* @version 1.0*/
public class System_ {public static void main(String[] args) {int[] src = new int[]{1,2,3};int[] dest = new int[3];System.arraycopy(src, 0, dest, 0, src.length); //从src数组的0位置复制到dest的0位置,复制src的所有元素System.out.println(Arrays.toString(dest));}
}
结果

image-20240101164507525

3.currentTimeMillens
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class CurrentTimeMillens {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}
结果

image-20240101190102867

3.大数处理方案

基本介绍

image-20240101183101947

BigInteger类
介绍
  1. 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
package bignum;import java.math.BigInteger;/*** @author 孙显圣* @version 1.0*/
public class BigInteger_ {public static void main(String[] args) {BigInteger bigInteger = new BigInteger("33333333333333333333333333333333333333333333333333333333333333");System.out.println(bigInteger);BigInteger bigInteger1 = new BigInteger("1111111111111111");//加法BigInteger add = bigInteger.add(bigInteger1);//减法BigInteger subtract = bigInteger.subtract(bigInteger1);//乘法BigInteger multiply = bigInteger.multiply(bigInteger1);//除法BigInteger divide = bigInteger.divide(bigInteger1);System.out.println("add = " + add);System.out.println("subtract = " + subtract);System.out.println("multiply = " + multiply);System.out.println("divide = " + divide);}
}
结果

image-20240101184154530

BigDecimal类
介绍
  1. 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
  3. 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,BigDecimal.ROUND_CEILING,就会截取与子类相同长度的精度
代码
package bignum;import java.math.BigDecimal;
import java.math.RoundingMode;/*** @author 孙显圣* @version 1.0*/
public class BigDecimal_ {public static void main(String[] args) {BigDecimal bigDecimal = new BigDecimal("1999.123323213218888888");BigDecimal bigDecimal1 = new BigDecimal("2");//加法BigDecimal add = bigDecimal.add(bigDecimal1);//减法BigDecimal subtract = bigDecimal.subtract(bigDecimal1);//乘法BigDecimal multiply = bigDecimal.multiply(bigDecimal1);//除法BigDecimal divide = bigDecimal.divide(bigDecimal1, BigDecimal.ROUND_CEILING); //添加参数,避免除不尽的情况//输出这四个结果System.out.println("add = " + add);System.out.println("subtract = " + subtract);System.out.println("multiply = " + multiply);System.out.println("divide = " + divide);}
}
结果

image-20240101184956856

4.日期类

对于IDEA类图中的属性image-20240101190844530

如果有getter或者setter方法则表明这个方法后面的名字为属性

第一代日期类
代码
package date_;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author 孙显圣* @version 1.0*/
public class Date01 {public static void main(String[] args) throws ParseException {Date date = new Date(); //获取当前系统时间System.out.println("当前日期为:" + date);Date date1 = new Date(1232134343); //通过毫秒数来确定时间,毫秒数加上1970年System.out.println("日期为:" + date1);//创建简单日期格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm:ss E");String format = sdf.format(date); // 把当前日期格式化一下然后给一个字符串System.out.println("格式化之后的日期为:" + format);//把一个格式化的String转换成对应的DateString s = "2024年 01月 01日 07:24:21: 星期一";Date parse = sdf.parse(s); //这里会有异常的问题,直接alt + Enter抛出异常即可System.out.println("转换后的日期为:" + parse);}
}
结果

image-20240101193048893

第二代日期类(Calendar)
基本介绍
  1. Calendar是一个抽象类,并且构造器是私有的
  2. 可以通过getInstance来获取实例
代码
package date_;import java.util.Calendar;/*** @author 孙显圣* @version 1.0*/
public class Date02 {public static void main(String[] args) {Calendar c = Calendar.getInstance(); //获取当前日期System.out.println("c = " + c);//获取日历对象的某个日历字段System.out.println("年:" + c.get(Calendar.YEAR));System.out.println("月:" + (c.get(Calendar.MONTH)+ 1)); //加一的原因是这个月份是从0开始的System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));System.out.println("时:" + c.get(Calendar.HOUR));System.out.println("分:" + c.get(Calendar.MINUTE));System.out.println("秒:" + c.get(Calendar.SECOND));//输出获取的时间的组合System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+ 1) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日" + c.get(Calendar.HOUR) + "时" + c.get(Calendar.MINUTE) + "分" + c.get(Calendar.SECOND) + "秒");}
}
结果

image-20240101195510128

第三代日期类
基本使用
package date_;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;/*** @author 孙显圣* @version 1.0*/
public class Date03 {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now(); //获取目前的时间System.out.println(now);//单独获取年月日,时分秒System.out.println("年 = " + now.getYear());System.out.println("月 = " + now.getMonth()); //英文的System.out.println("月 = " + now.getMonthValue()); //中文的System.out.println("日 = " + now.getDayOfMonth());System.out.println("时 = " + now.getHour());System.out.println("分 = " + now.getMinute());System.out.println("秒 = " + now.getSecond());LocalDate now1 = LocalDate.now(); //只可以获取年月日LocalTime now2 = LocalTime.now(); //只可以获取时分秒}
}

image-20240102191105204

进阶使用
package date_;import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;/*** @author 孙显圣* @version 1.0*/
public class Date04 {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();//格式化日期类DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //设置格式String format = dateTimeFormatter.format(now); //格式化System.out.println(format);//时间戳与Date之间的转换Instant now1 = Instant.now(); //获取时间戳System.out.println(now1);java.util.Date from = Date.from(now1); //时间戳 - > DateInstant instant = from.toInstant(); //Date - > 时间戳//提供plus 和 minus方法来对当前时间进行加减LocalDateTime localDateTime = now.plusDays(89); //当前时间加上89天String format1 = dateTimeFormatter.format(localDateTime);System.out.println(format1);LocalDateTime localDateTime1 = now.minusMinutes(60); //当前时间减去60分钟String format2 = dateTimeFormatter.format(localDateTime1);System.out.println(format2);}
}

image-20240102195303280

5.章节练习

练习一
题目

image-20240102212338445

代码
package homework11_;/*** @author 孙显圣* @version 1.0*/
public class HomeWork01 {public static void main(String[] args) {System.out.println("反转前:" + "abcdef");String res = null;try {res = reverse("abcdef",1,1);} catch (Exception e) {System.out.println(e.getMessage()); //抛出异常后这里就可以抓住异常System.exit(-1); //出异常之后,反转后的代码就没有必要继续执行了,所以直接返回}System.out.println("反转后:" + res);}public static String reverse(String str, int start, int end) {//对参数做一个验证,将正确的写出来然后再取反就可以if (!(str != null && start >= 0 && end > start && end < str.length())) {throw new RuntimeException("参数不正确");}String s = str.substring(start, end + 1); //截取出来需要翻转的部分char[] charArray = s.toCharArray();char temp;for (int i = 0; i <= charArray.length / 2 - 1; i++) { //进行反转temp = charArray[i];charArray[i] = charArray[charArray.length - i - 1];charArray[charArray.length - i - 1] = temp;}String re = new String(charArray); //将反转好的部分转化成String类型StringBuilder stringBuilder = new StringBuilder(str); //转换成StringBuilder进行字符替换stringBuilder.replace(start, end + 1, re); //将反转好的部分进行替换return stringBuilder.toString();}
}
结果

image-20240102212427459

练习二
题目

image-20240103095119668

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork02 {public static void main(String[] args) {try {judgement();} catch (Exception e) {System.out.println(e.getMessage());}}public static void judgement() {Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:");String username = scanner.next();//进行检验if (username.length() > 4 || username.length() < 2) {throw new RuntimeException("用户名输入有误");}System.out.println("请输入密码:");String password = scanner.next();boolean res = true;//判断是否都是数字for (char c: password.toCharArray()) {if (!Character.isDigit(c)) {res = false;}}if (!(res && password.length() == 6)) {throw new RuntimeException("密码输入有误");}System.out.println("请输入邮箱:");String mailbox = scanner.next();int a = mailbox.indexOf('@');int b = mailbox.indexOf('.');if (!(a >= 0 && a < b)) {throw new RuntimeException("邮箱输入有误");}}
}
结果

image-20240103095222845

练习三
题目

image-20240103100709580

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork03 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入人名,以空格分隔");String s = scanner.nextLine();String[] split = s.split(" "); //以空格分隔char s2 = split[1].charAt(0); //取出第二个元素的首字母String res = split[2].concat(",").concat(split[0]).concat(".").concat(String.valueOf(s2));System.out.println(res);}
}
结果

image-20240103100736411

练习四
题目

image-20240103100813181

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork04 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入字符串");String str = scanner.next();int big = 0;int small = 0;int number = 0;int other = 0;//按照ascii表来判断char[] charArray = str.toCharArray();for (char c:charArray) {if (c >= 'A' && c <= 'Z') {big ++;} else if (c >= 'a' && c <= 'z') {small ++;} else if (c >= '0' && c <= '9') {number ++;}else {other ++;}}System.out.println("大写:" + big + " 小写:" + small + " 数字:" + number + " 其余:" + other);}
}
结果

image-20240103101839746

练习五
题目

image-20240103101913835

代码
package homework11_;/*** @author 孙显圣* @version 1.0*/
public class HomeWork05 {public static void main(String[] args) {String s1 = "hspedu";Animal a = new Animal(s1);Animal b = new Animal(s1);System.out.println(a == b); // a跟b指向的是两个不同的实例所以是falseSystem.out.println(a.equals(b)); // a跟b不是同一个对象所以返回falseSystem.out.println(a.name == b.name); //比较的是这两个String类型的引用指向的都是常量池中的同一个”hspedu“,所以返回trueString s4 = new String("hspedu");String s5 = "hspedu";System.out.println(s1 == s4); //一个指向常量池,一个指向对象,所以返回falseSystem.out.println(s4 == s5); //falseString t1 = "hello" + s1; //两个字符串相加,其中包含字符串变量,则会返回一个新的String类型的对象String t2 = "hellohspedu"; //直接在常量池中找到刚才创建的System.out.println(t1.intern() == t2); //trueSystem.out.println(t1 == t2); //false,因为t1是一个对象,t2是指向常量池}
}
class Animal {String name;public Animal(String name) {this.name = name;}
}
结果

image-20240103103812392

常用类

1.Math类

/*** @author 孙显圣* @version 1.0*/
public class Math_ {public static void main(String[] args) {//1.abs 绝对值int abs = Math.abs(-9);System.out.println(abs);//2.pow 求幂double pow = Math.pow(2, 10);System.out.println(pow);//3.ceil 向上取整,返回>=该参数的最小整数double ceil = Math.ceil(3.1);System.out.println(ceil);//4.floor 向下取整,返回<=该参数的最小整数double floor = Math.floor(3.8);System.out.println(floor);//5.round 四舍五入long round = Math.round(-5000.67);System.out.println(round);//6.sqrt 求开方double sqrt = Math.sqrt(9.0);System.out.println(sqrt);//求2-7的随机数for (int i = 0; i < 10; i++) {System.out.println(2 + (int) (Math.random() * 6)); //2 + 0到5就是2到7}}
}

2.System类

image-20240101163902484

1.exit
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class System_ {public static void main(String[] args) {// exit 退出当前程序System.out.println("1");System.exit(0); //正常情况退出System.out.println("2");}
}
结果

image-20240101163945623

2.arraycopy
参数解释

image-20240101164126728

代码
package system_;import java.util.Arrays;/*** @author 孙显圣* @version 1.0*/
public class System_ {public static void main(String[] args) {int[] src = new int[]{1,2,3};int[] dest = new int[3];System.arraycopy(src, 0, dest, 0, src.length); //从src数组的0位置复制到dest的0位置,复制src的所有元素System.out.println(Arrays.toString(dest));}
}
结果

image-20240101164507525

3.currentTimeMillens
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class CurrentTimeMillens {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}
结果

image-20240101190102867

3.大数处理方案

基本介绍

image-20240101183101947

BigInteger类
介绍
  1. 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
package bignum;import java.math.BigInteger;/*** @author 孙显圣* @version 1.0*/
public class BigInteger_ {public static void main(String[] args) {BigInteger bigInteger = new BigInteger("33333333333333333333333333333333333333333333333333333333333333");System.out.println(bigInteger);BigInteger bigInteger1 = new BigInteger("1111111111111111");//加法BigInteger add = bigInteger.add(bigInteger1);//减法BigInteger subtract = bigInteger.subtract(bigInteger1);//乘法BigInteger multiply = bigInteger.multiply(bigInteger1);//除法BigInteger divide = bigInteger.divide(bigInteger1);System.out.println("add = " + add);System.out.println("subtract = " + subtract);System.out.println("multiply = " + multiply);System.out.println("divide = " + divide);}
}
结果

image-20240101184154530

BigDecimal类
介绍
  1. 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
  3. 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,BigDecimal.ROUND_CEILING,就会截取与子类相同长度的精度
代码
package bignum;import java.math.BigDecimal;
import java.math.RoundingMode;/*** @author 孙显圣* @version 1.0*/
public class BigDecimal_ {public static void main(String[] args) {BigDecimal bigDecimal = new BigDecimal("1999.123323213218888888");BigDecimal bigDecimal1 = new BigDecimal("2");//加法BigDecimal add = bigDecimal.add(bigDecimal1);//减法BigDecimal subtract = bigDecimal.subtract(bigDecimal1);//乘法BigDecimal multiply = bigDecimal.multiply(bigDecimal1);//除法BigDecimal divide = bigDecimal.divide(bigDecimal1, BigDecimal.ROUND_CEILING); //添加参数,避免除不尽的情况//输出这四个结果System.out.println("add = " + add);System.out.println("subtract = " + subtract);System.out.println("multiply = " + multiply);System.out.println("divide = " + divide);}
}
结果

image-20240101184956856

4.日期类

对于IDEA类图中的属性image-20240101190844530

如果有getter或者setter方法则表明这个方法后面的名字为属性

第一代日期类
代码
package date_;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author 孙显圣* @version 1.0*/
public class Date01 {public static void main(String[] args) throws ParseException {Date date = new Date(); //获取当前系统时间System.out.println("当前日期为:" + date);Date date1 = new Date(1232134343); //通过毫秒数来确定时间,毫秒数加上1970年System.out.println("日期为:" + date1);//创建简单日期格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm:ss E");String format = sdf.format(date); // 把当前日期格式化一下然后给一个字符串System.out.println("格式化之后的日期为:" + format);//把一个格式化的String转换成对应的DateString s = "2024年 01月 01日 07:24:21: 星期一";Date parse = sdf.parse(s); //这里会有异常的问题,直接alt + Enter抛出异常即可System.out.println("转换后的日期为:" + parse);}
}
结果

image-20240101193048893

第二代日期类(Calendar)
基本介绍
  1. Calendar是一个抽象类,并且构造器是私有的
  2. 可以通过getInstance来获取实例
代码
package date_;import java.util.Calendar;/*** @author 孙显圣* @version 1.0*/
public class Date02 {public static void main(String[] args) {Calendar c = Calendar.getInstance(); //获取当前日期System.out.println("c = " + c);//获取日历对象的某个日历字段System.out.println("年:" + c.get(Calendar.YEAR));System.out.println("月:" + (c.get(Calendar.MONTH)+ 1)); //加一的原因是这个月份是从0开始的System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));System.out.println("时:" + c.get(Calendar.HOUR));System.out.println("分:" + c.get(Calendar.MINUTE));System.out.println("秒:" + c.get(Calendar.SECOND));//输出获取的时间的组合System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+ 1) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日" + c.get(Calendar.HOUR) + "时" + c.get(Calendar.MINUTE) + "分" + c.get(Calendar.SECOND) + "秒");}
}
结果

image-20240101195510128

第三代日期类
基本使用
package date_;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;/*** @author 孙显圣* @version 1.0*/
public class Date03 {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now(); //获取目前的时间System.out.println(now);//单独获取年月日,时分秒System.out.println("年 = " + now.getYear());System.out.println("月 = " + now.getMonth()); //英文的System.out.println("月 = " + now.getMonthValue()); //中文的System.out.println("日 = " + now.getDayOfMonth());System.out.println("时 = " + now.getHour());System.out.println("分 = " + now.getMinute());System.out.println("秒 = " + now.getSecond());LocalDate now1 = LocalDate.now(); //只可以获取年月日LocalTime now2 = LocalTime.now(); //只可以获取时分秒}
}

image-20240102191105204

进阶使用
package date_;import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;/*** @author 孙显圣* @version 1.0*/
public class Date04 {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();//格式化日期类DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //设置格式String format = dateTimeFormatter.format(now); //格式化System.out.println(format);//时间戳与Date之间的转换Instant now1 = Instant.now(); //获取时间戳System.out.println(now1);java.util.Date from = Date.from(now1); //时间戳 - > DateInstant instant = from.toInstant(); //Date - > 时间戳//提供plus 和 minus方法来对当前时间进行加减LocalDateTime localDateTime = now.plusDays(89); //当前时间加上89天String format1 = dateTimeFormatter.format(localDateTime);System.out.println(format1);LocalDateTime localDateTime1 = now.minusMinutes(60); //当前时间减去60分钟String format2 = dateTimeFormatter.format(localDateTime1);System.out.println(format2);}
}

image-20240102195303280

5.章节练习

练习一
题目

image-20240102212338445

代码
package homework11_;/*** @author 孙显圣* @version 1.0*/
public class HomeWork01 {public static void main(String[] args) {System.out.println("反转前:" + "abcdef");String res = null;try {res = reverse("abcdef",1,1);} catch (Exception e) {System.out.println(e.getMessage()); //抛出异常后这里就可以抓住异常System.exit(-1); //出异常之后,反转后的代码就没有必要继续执行了,所以直接返回}System.out.println("反转后:" + res);}public static String reverse(String str, int start, int end) {//对参数做一个验证,将正确的写出来然后再取反就可以if (!(str != null && start >= 0 && end > start && end < str.length())) {throw new RuntimeException("参数不正确");}String s = str.substring(start, end + 1); //截取出来需要翻转的部分char[] charArray = s.toCharArray();char temp;for (int i = 0; i <= charArray.length / 2 - 1; i++) { //进行反转temp = charArray[i];charArray[i] = charArray[charArray.length - i - 1];charArray[charArray.length - i - 1] = temp;}String re = new String(charArray); //将反转好的部分转化成String类型StringBuilder stringBuilder = new StringBuilder(str); //转换成StringBuilder进行字符替换stringBuilder.replace(start, end + 1, re); //将反转好的部分进行替换return stringBuilder.toString();}
}
结果

image-20240102212427459

练习二
题目

image-20240103095119668

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork02 {public static void main(String[] args) {try {judgement();} catch (Exception e) {System.out.println(e.getMessage());}}public static void judgement() {Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:");String username = scanner.next();//进行检验if (username.length() > 4 || username.length() < 2) {throw new RuntimeException("用户名输入有误");}System.out.println("请输入密码:");String password = scanner.next();boolean res = true;//判断是否都是数字for (char c: password.toCharArray()) {if (!Character.isDigit(c)) {res = false;}}if (!(res && password.length() == 6)) {throw new RuntimeException("密码输入有误");}System.out.println("请输入邮箱:");String mailbox = scanner.next();int a = mailbox.indexOf('@');int b = mailbox.indexOf('.');if (!(a >= 0 && a < b)) {throw new RuntimeException("邮箱输入有误");}}
}
结果

image-20240103095222845

练习三
题目

image-20240103100709580

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork03 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入人名,以空格分隔");String s = scanner.nextLine();String[] split = s.split(" "); //以空格分隔char s2 = split[1].charAt(0); //取出第二个元素的首字母String res = split[2].concat(",").concat(split[0]).concat(".").concat(String.valueOf(s2));System.out.println(res);}
}
结果

image-20240103100736411

练习四
题目

image-20240103100813181

代码
package homework11_;import java.util.Scanner;/*** @author 孙显圣* @version 1.0*/
public class HomeWork04 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入字符串");String str = scanner.next();int big = 0;int small = 0;int number = 0;int other = 0;//按照ascii表来判断char[] charArray = str.toCharArray();for (char c:charArray) {if (c >= 'A' && c <= 'Z') {big ++;} else if (c >= 'a' && c <= 'z') {small ++;} else if (c >= '0' && c <= '9') {number ++;}else {other ++;}}System.out.println("大写:" + big + " 小写:" + small + " 数字:" + number + " 其余:" + other);}
}
结果

image-20240103101839746

练习五
题目

image-20240103101913835

代码
package homework11_;/*** @author 孙显圣* @version 1.0*/
public class HomeWork05 {public static void main(String[] args) {String s1 = "hspedu";Animal a = new Animal(s1);Animal b = new Animal(s1);System.out.println(a == b); // a跟b指向的是两个不同的实例所以是falseSystem.out.println(a.equals(b)); // a跟b不是同一个对象所以返回falseSystem.out.println(a.name == b.name); //比较的是这两个String类型的引用指向的都是常量池中的同一个”hspedu“,所以返回trueString s4 = new String("hspedu");String s5 = "hspedu";System.out.println(s1 == s4); //一个指向常量池,一个指向对象,所以返回falseSystem.out.println(s4 == s5); //falseString t1 = "hello" + s1; //两个字符串相加,其中包含字符串变量,则会返回一个新的String类型的对象String t2 = "hellohspedu"; //直接在常量池中找到刚才创建的System.out.println(t1.intern() == t2); //trueSystem.out.println(t1 == t2); //false,因为t1是一个对象,t2是指向常量池}
}
class Animal {String name;public Animal(String name) {this.name = name;}
}
结果

image-20240103103812392

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习,CRNN+CTC和Attention OCR你更青睐哪一种?

深度学习在OCR领域的应用已经取得了瞩目的成果&#xff0c;而选择合适的算法对于提升OCR的识别准确率至关重要。在众多算法中&#xff0c;CRNN和Attention OCR犹如两颗璀璨的明珠&#xff0c;备受瞩目。 CRNN&#xff0c;这位结合了卷积神经网络&#xff08;CNN&#xff09;和…

电子电器架构 —— 诊断数据DTC具体故障类型篇

电子电器架构 —— 诊断数据DTC具体故障类型篇 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝…

Spark Stage

Spark Stage 什么是Stage Spark中的一个Stage只不过是物理执行计划其中的一个步骤&#xff0c;它是物理执行计划的一个执行单元。一个Job会被拆分为多组Task&#xff0c;每组任务被称为一个Stage&#xff0c;可以简单理解为MapReduce里面的Map Stage&#xff0c; Reduce Stag…

Unity 中 苹果眼镜开发入口

1. 文档介绍了Unity对Apple新操作系统visionOS的支持。 2. Unity提供了完善的文档、模板和支持,帮助开发者快速为visionOS开发应用。 3. Unity的跨平台框架AR Foundation和XR Interaction Toolkit可以帮助现有移动和XR应用无缝迁移到visionOS。 4. 在visionOS上,可以利用Uni…

kafka(三)——librdkafka编译与使用(c++)

linux下编译 源码下载 git clone https://github.com/edenhill/librdkafka配置、编译和安装 # 进入目录 cd librdkafka/# 配置 ./configure# 编译 make# 安装 make install头文件和库目录 # 头文件 /usr/local/include/librdkafka rdkafkacpp.h rdkafka.h rdkafka_mock.h #…

LLM漫谈(五)| 从q star视角解密OpenAI 2027年实现AGI计划

最近&#xff0c;网上疯传OpenAI2027年关于AGI的计划。在本文&#xff0c;我们将针对部分细节以第一人称进行分享。​ 摘要&#xff1a;OpenAI于2022年8月开始训练一个125万亿参数的多模态模型。第一个阶段是Arrakis&#xff0c;也叫Q*&#xff0c;该模型于2023年12月完成训练&…

vue3+threejs新手从零开发卡牌游戏(十一):添加简单的手牌上场逻辑

首先优化之前的战域相关代码&#xff0c;主要是将战域分成两部分&#xff0c;上方是对方战域&#xff0c;下方是己方战域&#xff0c;然后修改了战域中格子的名称&#xff0c;方便后续不同手牌上场的逻辑区分&#xff1a; game/site/index.vue完整代码如下&#xff1a; <!…

【WEEK4】 【DAY4】AJAX第一部分【中文版】

【WEEK4】 【DAY4】AJAX第一部分【中文版】 2024.3.21 Thursday 目录 8.AJAX8.1.简介8.2.伪造ajax8.2.1.新建module&#xff1a;springmvc-06-ajax8.2.2.添加web支持&#xff0c;导入pom依赖8.2.2.1.修改web.xml8.2.2.2.新建jsp文件夹 8.2.3.新建applicationContext.xml8.2.4.…

2024智能短信营销推广系统使用攻略

智能短信营销推广系统以其精准、高效的特点&#xff0c;成为企业与消费者建立联系的重要桥梁。云衔科技凭借其先进的技术和专业的服务&#xff0c;为企业提供了一套完善的智能短信营销推广系统解决方案&#xff0c;让企业在短时间内实现大规模、个性化的短信营销活动。 云衔科…

【Word自动化办公】使用python-docx对Word进行操作

目录 一、环境安装 二、文档各组成结构获取 2.1 组成结构讲解 2.2 段落run对象的切分标准 三、获取整篇文档内容 四、写入指定样式的数据 4.1 通过add_paragraph与add_run参数添加样式 4.2 单独设置文本样式 五、添加标题 六、换行符&换页符 七、添加图片数据 …

迷宫(一)(DFS BFS)

//新生训练 #include <bits/stdc.h> using namespace std; int n, m; bool f; char mp[15][15]; int vis[15][15]; int dir[4][2] {{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; bool in(int x, int y) {return 0 < x && x < n && 0 < y && y …

NFT交易市场-后端开发

首先我们需要配置好我们的ipfs&#xff0c;参考官方文档 1.https://docs.ipfs.tech/install/command-line/#system-requirementshttps://docs.ipfs.tech/how-to/command-line-quick-start/#initialize-the-repository 首先新建一个文件夹 然后在终端输入npm init -y命令进行初…

深入理解Redis的Sentinel机制

Sentinel简述 Sentinel为了解决什么问题&#xff1f; Sentinel&#xff08;哨岗、哨兵&#xff09;是Redis的高可用性&#xff08;high availability&#xff09;解决方案。 我们知道Redis 的主从复制模式可以将主节点的数据改变同步给从节点&#xff0c;这样从节点就可以起…

docker 和K8S知识分享

docker知识&#xff1a; 比如写了个项目&#xff0c;并且在本地调试没有任务问题&#xff0c;这时候你想在另外一台电脑或者服务器运行&#xff0c;那么你需要在另外一台电脑或者服务器配置相同的软件&#xff0c;比如数据库&#xff0c;web服务器&#xff0c;必要的插件和库等…

吴恩达机器学习笔记 二十七 决策树中连续值特征的选择 回归树

还是猫狗分类的案例&#xff0c;假如再增加一个特征weight&#xff0c;该值是一个连续的值&#xff0c;如何在决策树中使用该特征&#xff1f; 如下图所示&#xff0c;尝试不同的阈值&#xff0c;如 weight<9 , 此时左边有四个样本&#xff0c;都为猫&#xff0c;右边有六个…

分布式搜索引擎ES-RestClient查询文档快速入门

RestClient查询文档快速入门 文章目录 RestClient查询文档快速入门1.1、match_all1.2、全文检索查询1.3、精确查询1.4、复合查询-boolean query1.5、排序和分页1.6、高亮&#xff08;解析查询高亮结果&#xff09; 1.1、match_all package cn.mannor.hotel;import org.apache.…

C#,图论与图算法,计算图(Graph)的岛(Island)数量的算法与源程序

1 孤岛数 给定一个布尔矩阵,求孤岛数。一组相连的1形成一个岛。例如,下面的矩阵包含5个岛: 在讨论问题之前,让我们先了解什么是连接组件。无向图的连通分量是一个子图,其中每两个顶点通过一条路径相互连接,并且不与子图外的其他顶点连接。 所有顶点相互连接的图只有一个…

Tomcat 下载以及安装

Tomcat安装及配置教程主要分为四步&#xff1a; 步骤一&#xff1a;首先确认自己是否已经安装JDK 1. cmd&#xff1a;查看java的版本 步骤二&#xff1a;下载安装Tomcat 1. 下载tomcat :Apache Tomcat - Welcome! 2. 选择对应的tomcat版本&#xff1a; 3. 进行安装&#…

Uibot6.0 (RPA财务机器人师资培训第3天 )财务招聘信息抓取机器人案例实战

训练网站&#xff1a;泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博…

鸿蒙一次开发,多端部署(十四)一多开发实例(短信)

本章从系统预置的应用中&#xff0c;选择短信应用作为典型的案例&#xff0c;从页面开发和工程结构的角度&#xff0c;介绍"一多"的具体实践。系统的产品形态在不断丰富中&#xff0c;当前主要有默认设备和平板两种产品形态&#xff0c;本章的具体实践也将围绕这两种…