文章目录
- 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类
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");}
}
结果
2.arraycopy
参数解释
代码
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));}
}
结果
3.currentTimeMillens
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class CurrentTimeMillens {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}
结果
3.大数处理方案
基本介绍
BigInteger类
介绍
- 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
- 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
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);}
}
结果
BigDecimal类
介绍
- 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
- 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
- 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,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);}
}
结果
4.日期类
对于IDEA类图中的属性
如果有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);}
}
结果
第二代日期类(Calendar)
基本介绍
- Calendar是一个抽象类,并且构造器是私有的
- 可以通过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) + "秒");}
}
结果
第三代日期类
基本使用
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(); //只可以获取时分秒}
}
进阶使用
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);}
}
5.章节练习
练习一
题目
代码
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();}
}
结果
练习二
题目
代码
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("邮箱输入有误");}}
}
结果
练习三
题目
代码
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);}
}
结果
练习四
题目
代码
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);}
}
结果
练习五
题目
代码
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;}
}
结果
常用类
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类
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");}
}
结果
2.arraycopy
参数解释
代码
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));}
}
结果
3.currentTimeMillens
代码
package system_;/*** @author 孙显圣* @version 1.0*/
public class CurrentTimeMillens {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}
结果
3.大数处理方案
基本介绍
BigInteger类
介绍
- 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
- 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
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);}
}
结果
BigDecimal类
介绍
- 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
- 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
- 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,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);}
}
结果
4.日期类
对于IDEA类图中的属性
如果有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);}
}
结果
第二代日期类(Calendar)
基本介绍
- Calendar是一个抽象类,并且构造器是私有的
- 可以通过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) + "秒");}
}
结果
第三代日期类
基本使用
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(); //只可以获取时分秒}
}
进阶使用
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);}
}
5.章节练习
练习一
题目
代码
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();}
}
结果
练习二
题目
代码
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("邮箱输入有误");}}
}
结果
练习三
题目
代码
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);}
}
结果
练习四
题目
代码
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);}
}
结果
练习五
题目
代码
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;}
}