首页 > 其他分享 >System&Math&包装类&文本扫描器&String总结

System&Math&包装类&文本扫描器&String总结

时间:2023-12-28 20:59:19浏览次数:37  
标签:String int System println Integer Math out

总结

System类

1、注意设计类的时候,不要将类名设计为和jdk提供的类名一样
掌握属性和方法
属性:
err:获取标准的输出流(打印错误信息)
out:标准的输出流,打印任意信息
in:获取标准的输入流,可以获取控制台输入的信息

方法:(全部是类方法)
1、currentTimeMillis() :获取当前时间,以毫秒来表示,1000毫秒 == 1秒
作用:测试代码的运行时间

 long start = System.currentTimeMillis();
 int i = 0;
do{
System.out.println(i);
 i++;
}while(i < 10000);
long end = System.currentTimeMillis();
System.out.println("程序运行时间:" + (end - start) + "毫秒");

2、exit(0) 终止当前运行的Java虚拟机。

System.exit(0); // 结束JVM

3、arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

//删除一个数组中指定下标的元素
int[] nums = {1, 3, 5, 7, 9};
int[] dest = new int[nums.length - 1];
//删除下标为2的元素
System.arraycopy(nums,0,dest,0,2);
System.arraycopy(nums,3,dest,2,2);
System.out.println(Arrays.toString(dest));
//设计一个方法删除一个数组中指定范围的元素
int[] arrs = SystemDemo.removeElement(nums, 1, 3);
System.out.println(Arrays.toString(arrs));

public static int[] removeElement(int[] nums,int start,int end) {
 // 判断参数
int[] arrs = new int[nums.length - (end - start)];
// 赋值数组
System.arraycopy(nums,0,arrs,0,start);
System.arraycopy(nums,end,arrs,start,nums.length - end);

// 返回结果
return arrs;
    }

Math常用类

Math:封装一些数学常用的方法
属性(常量)
E:表示2.71
PI:3.14
方法
1、random():产生1个范围在0,1之间的随机数,数据类型是double

// 产生1个随机数
  double random = Math.random();
  System.out.println(random);
// 改变随机数的整数部分的范围,整数部分要变多大,就乘以那个数
  double v = Math.random() * 100;// 整数部分的范围是0-99
  System.out.println(v);

//  将这个随机数变为整数:使用数据类型向下转换
  int num = (int)(Math.random() * 5 + 1);
  System.out.println(num);

// 产生5个1-100内的随机数
  for (int i = 0; i < 5; i++) {
      int num = (int)(Math.random() * 100 + 1);
      System.out.println(num);
  }
  int max = Math.max(10, 34);

2、max(),min():获取两个数中最大或最小

int max = Math.max(10, 34);
System.out.println(max);
int min = Math.min(10, 34);
System.out.println(min);

3、ceil():向上取值(天花板)

 double ceil = Math.ceil(3.00000000);
 System.out.println(ceil);

4、floor():向下取值(地板)

double floor = Math.floor(3.9999999999);
System.out.println(floor);

5、round():四舍五入

long round = Math.round(3.413);
System.out.println(round);

BigInteger

使用整数的范围超过long,就是BigInteger
Number是数值类型的父类
Comparable:自然比较器的接口:对对象进行比较大小

1、构造方法
BigInteger(String val) 将BigInteger的十进制字符串表示形式转换为BigInteger。
val必须是纯数字的字符串

2、常用的方法:加 减 乘 除
add(BigInteger a):做加法
subtract(BigInteger val) :做减法
multiply(BigInteger val) :做乘法
divide(BigInteger val):做除法

 // 创建BigInteger对象
 BigInteger bi = new BigInteger("1214321453254356465467576576876876876876876867876876");
 BigInteger one = BigInteger.TEN;
 // 做加法
 BigInteger sum = bi.add(one);
 System.out.println(sum);

 // 做减法
 BigInteger subtract = bi.subtract(one);
 System.out.println(subtract);

 // 做乘法
 BigInteger multiply = bi.multiply(one);
 System.out.println(multiply);

 // 做除法
 BigInteger divide = bi.divide(new BigInteger("2"));
 System.out.println(divide);

BigDecimal

BigDecimal表示小数位可以精确到你想要的位数
只要与钱相关的属性,一般使用
属性:

构造方法:
BigDecimal(String val) 将BigDecimal的字符串表示 BigDecimal转换为 BigDecimal
val是纯数字,带小数点

 BigDecimal bd1 = new BigDecimal("3547546435325235.11423532456436546754765765786574643563253535");
        BigDecimal bd2 = new BigDecimal("354.11423532456436546754765765786574643563253535");
        BigDecimal one = BigDecimal.ONE;
        BigDecimal sum = bd1.add(one);// 做加法
        System.out.println(sum);
        BigDecimal subtract = bd1.subtract(one);// 做减法
        System.out.println(subtract);

        BigDecimal multiply = bd1.multiply(BigDecimal.TEN); // 做乘法
        System.out.println(multiply);

        // 做除法
        BigDecimal divide = bd1.divide(bd2,30,BigDecimal.ROUND_HALF_UP); // ArithmeticException:算术错误,小数位不确定
        // 做除法一定要指定小数位
        // 还是指定四舍五入的模式:
        System.out.println(divide);

包装类

包装类:将基本数据类型,包装为一个类
每一个基本数据类型对应的类就是这个类型包装类
java基本类型:
byte short int long
float double
char
boolean
java中有8个包装类
byte的包装类是:Byte
short的包装类是:Short
int的包装类是:Integer
long的包装类是:Long
float的包装类是:Float
double的包装类是:Double
char的包装类是:Character
boolean的包装类:Boolean

包装类作用:
1)、使用包装,默认都是null
2)、将字符串类型数据转换为对应基本数据类型

装箱和拆箱
装箱:将基本类型变为包装类
拆箱:将包装类装换为基本类型
jdk1.5后支持自动装箱和自动拆箱

Integer i = new Integer(123); // 手动将int类型数字装箱为Integer类型
Integer i2 = new Integer("120"); // 将字符串120装换为Integer
Integer i = 123; // 自动装箱
int num = i.intValue(); // 将包装类手动拆箱
int num2 = i; // 自动拆箱

讲解Integer
1、常量
2、构造方法
Integer(int value)
构造一个新分配的 Integer对象,该对象表示指定的 int值。

Integer i = new Integer(123); // 手动将int类型数字装箱为Integer类型
Integer i = 123; // 自动装箱

Integer(String s)
构造一个新分配 Integer对象,表示 int由指示值 String参数。

Integer i2 = new Integer("120"); // 将字符串120装换为Integer

3、方法:
parseInt(String s) :将字符串转换int

   int num3 = Integer.parseInt("123");

   String[] strs = {"1", "3", "5", "7", "9"};
 // 计算strs数组所有元素的和
   int sum = 0; // 和
   for (String s : strs) {
       // 将字符串转换int
      sum += Integer.parseInt(s);
   }
   System.out.println(sum);

Character
isDigit(char ch) 确定指定的字符是否是数字。
isLetter(char ch) 确定指定的字符是否是一个字母

   char[] chars = {'a','3','D','6','t','7','8','9'};

 // 统计chars数组中数字的个数
   int count = 0;
   for (char c : chars) {
       if (Character.isDigit(c)) { // 判断c字符是否为数字
           count++;
       }
   }
   System.out.println(count);
 Integer integer = new Integer(128);
   Integer integer1 = new Integer(120);
   System.out.println(integer == integer1);
   System.out.println(integer.equals(integer1));

 Integer in1 = 128;
 Integer in2 = 128;

 System.out.println(in1 == integer);

// 享元模式:整型的包装
//jvm在常量池创建对象,每个整型都有256个对象(-128-127)
// 只用你使用自动装箱,并且你的数值在-128-127内,就会使用享元模式

文本扫描器

Scanner:获取在控台输入文本信息

 // 1、创建文本扫描器
        Scanner sc = new Scanner(System.in);
        // 2、提示输入
//        System.out.println("请输入你的年龄:");
        // 3、获取输入的内容,获取的是int类型的数字,nextInt()
        int age = sc.nextInt();
        System.out.println("你的年龄是:" + age);
        System.out.println("请输入你的分数:");
        double score = sc.nextDouble();
        System.out.println("你的分数:" + score);
        System.out.println("请输入你的名字:");
        String name = sc.nextLine();// next():获取单个字符串 nextLine():获取多个字符串
        System.out.println(name);

String:字符串的类

String:底层实现使用final修饰的字节数组来实现的
新建一个String的对象,这个对象里面就有一个final修饰字节数组,这个数组用装字符串的值
String s = "abc";
在常量池创建一个数字组:final byte[] bytes = {a,b,c}
String s2 = "abc";
s == s2地址相等
// 修改s的值
s = "abcd";
String的值是不可修改的

public class StringDemo {
    public static void main(String[] args) {
        String s1 = new String("abc"); // "abc"在常量池,然后把地址给在堆内存的对象,对象又把对象的地址给变量s1
        String s2 = "abc"; // 地址就是常量池的地址
        System.out.println(s1 == s2); // 所以不相等
        s2 = "abcd";
        String s3 = "ab"; // 地址就是常量池的地址
        String s4 = "a" + "b"; // 先拼接常量,"ab",再去常量池找,所以就等于“ab”
        System.out.println(s3 == s4);
        String s4 = s3 + "c"; // 使用变量拼接,会调用stringBuilder方法,会创建数组,就和s1类似,所以和s5的地址不相等
        String s5 = "abc"; // 地址就是常量池的地址
        System.out.println(s4 == s5);
    }
}

String类常用的方法

        // 常用方法:
        // 1.char charAt(int index) 返回 char指定索引处的字符。 不能超过下标范围
        String str = "abc";
        char c = str.charAt(2);
        System.out.println(c);
        // 2.String concat(String str) 将指定的字符串连接到该字符串的末尾。 相当于:+
        str = str.concat("123"); // 将123拼接到str尾部
        System.out.println(str);

        /*
         * 3.boolean contains(CharSequence s) 判断当前对象是否包含连续的参数s。s可以是以下三个子类的对象
         * CharSequence接口,包含下面子类:String、StringBuffer、StringBuilder
         */
        boolean temp = str.contains("bcd");// 在str里面有没有bc
        System.out.println(temp);

        // 4.boolean endsWith(String suffix) 判断当前字符串是否以指定的后缀suffix结尾。(参数必须连续)
        String name = "蘋蘋和小苍老师.mp4";
        boolean b = name.endsWith(".avi");
        System.out.println(b);
        // 5.boolean startsWith(String prefix) 判断当前字符串是否以指定的前缀prefix开头。  (参数必须连续)
        System.out.println(name.startsWith("蘋蘋"));

        /*
         * 8.void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
         * srcBegin:字符串开始下标
         * srcEnd:字符串结束下标(不包含)
         * dstBegin:数组dst的下标
         * 将此字符串中的字符复制到目标字符数组dst中。  (含头不含尾)[srcBegin,srcEnd)
         */
        char[] chars = new char[10];
        String s = "abcdefghijk";
        s.getChars(1,5,chars,0);
        System.out.println(Arrays.toString(chars));

        // 9.int indexOf(String s) 返回s第一次在当前对象str中出现的索引 ,-1表示没有找到(注意:这里s必须也是匹配连续的字符串)
        String s2 = "abc23432abc23423bc";
        int bc = s2.indexOf("bc",5);
        System.out.println(bc);

        // 10.int indexOf(String s, int fromIndex) 返回s在当前对象指定下标fromIndex后第一次出现的索引  (str是作为一个整体匹配下标的)


        // 11.int lastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引。
        // 12.int lastIndexOf(String str, int fromIndex) 返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向前搜索。

        // 13.boolean isEmpty() 当 length()为 0时,返回 true 。
        String str2 = null; // 空对象,NullPointerException:
        str2.isEmpty();
        String str2 = "";
        System.out.println(str2.isEmpty());

        // 14.int length() 返回此字符串的长度。
        String str3 = "abcdef";
        System.out.println(str3.length());

        /*
         * 16.String replace(CharSequence target, CharSequence replacement)   将当前字符串中的target替换为replacement,通常用来和谐用语
         * 父接口:CharSequence
         *			该接口的实现类:String、StringBuffer、StringBuilder
         */
        String  str4 = "abc342354dsfsdf436546";
        String str6 = str4.replace('5', '五');
        String str6 = str4.replace("54","五四");
        System.out.println(str6);

        // 19.String[] split(String regex)  将当前字符串对象按照给定的正则表达式regex分割为String[]
        String str =       "172.168.11.65;192.168.11.66;172.168.11.69;169.168.11.169;"
        String[] split = str.split(";");// 通过;将str分割成几个字符串
        for (String s : split) {
            System.out.println(s);
        }
// 请将当前str中所有的ip地址打印出来


        // 20.CharSequence subSequence(int beginIndex, int endIndex)  从当前字符串中beginIndex和endIndex之间截取子串(含头不含尾)
        String str7 = "123456789";
        CharSequence charSequence = str7.subSequence(1, 4);
        System.out.println(charSequence);
        // 21.String substring(int beginIndex)   从当前字符串中截取beginIndex到最后的子串
        // 22.String substring(int beginIndex, int endIndex)  从当前字符串中beginIndex和endIndex之间截取子串(含头不含尾)
        String str8 = "123456789";
        String substring = str8.substring(2, 6);
        System.out.println(substring);
//        str = "172.168.11.65;192.168.11.66;172.168.11.69;169.168.11.169;";
        // 请将字符串中ip是172开头的 最后一段打印出来
        /*
         * 思路:
         * 1. 将字符串str先进行按照;分割
         * 2. 遍历字符串数组,判断字符串以172开头的
         * 3. 在以172的字符串中,再截取最后一个.后面的字符,打印
         */

        // 23.char[] toCharArray() 将此字符串转换为新的字符数组。  方便遍历当前所有的字符
        String str9 = "sdafds32432gretrty";
        char[] chs = str9.toCharArray();
        for (char ch : chs) {
            System.out.println(ch);
        }

        // 24.String toUpperCase() 将此字符转换为全大写	一般用于验证码
        // 25.String toLowerCase() 将此字符转换为全小写	一般用于验证码
        String str10 = "abc";
        System.out.println(str10.toUpperCase());
        System.out.println("ABC".toLowerCase());

        // 26.String trim() 将当前字符串对象中字符前面和后面的空格去除	用了避免用户的一些不当输入
        String str = "		asdlkjfal		jfdaklfj 		dsalkj		";
        System.out.println(str.trim());

        // 27.static String valueOf(Object obj) 将其他类型转换为String对象
        String s = String.valueOf(10);

标签:String,int,System,println,Integer,Math,out
From: https://www.cnblogs.com/JunYuanStudy/p/17933531.html

相关文章

  • 数学专业math
    数学与应用数学专业数学分析、高等代数、解析几何、微分方程、实变函数、泛函分析、概率论、数理统计、复变函数、大学物理、抽象代数、初等数学研究、数学教育学。数学分析、高等代数、解析几何、微分方程、概率统计、复变函数、西方经济学、多元统计分析、Python语言基础、大......
  • 操作系统os operation System
        OS是计算机系统的核心和灵魂,是计算机系统必不可少的组成部分;它也是计算机教学的核心内容,是计算机相关专业的核心课程。OS是硬件的首次扩充,又是最核心的系统软件,OS课程具有承上启下的重要作用,既能对先行课程:程序设计、计算机组成原理和数据结构等进行总结和提高;......
  • Failed to convert value of type 'java.lang.String' to required type 'java.lang.L
    我测试的是一个接口接口里面没有任何参数怎么会报参数类型转换错误呢mad!!!!! 第二个接口就很蒙测了好久都是这个问题而且你打debug它不进这个接口并且你执行其他写好的接口它还是会报同样的错。。。。。。。。。。。。。。其实就是你代码的位置写错了应该写在pc......
  • .net 8中 System.Data.SqlClient打开数据库失败
    问题背景:项目升级到.Net8后,在使用System.Data.SqlClient连接SqlServer提示如下异常System.InvalidOperationException:“Internalconnectionfatalerror.” 开始解决问题:(1)排除了连接字符串以及代码编写的问题(2)System.Data.SqlClient升到最新版4.8.5,依旧报错 (3......
  • 【Cpp 语言基础】 string 类型进阶使用
    大纲:1.特殊的初始化方式2.获取子串3.与<algorith>中对应的成员函数 ”串“类型类似于数组类型(C语言的字符串就是字符数组)。但是有一点不同之处,就是串经常作为一个整体才有实际的”意义“,而数组每个单元都有其”意义“。因此,“串”的操作中,很大部分是“串”的整体、局部......
  • LocalDateTime、LocalDate、Date、String相互转化
    为什么日期有Date了,还在JDK8中推出了LocalDateTime、LocalDate呢?非线程安全的方法Date类的大部分方法都不是线程安全的,比如setYear()、setMonth()、setDate()、setHours()、setMinutes()、setSeconds()等方法。这些方法都可以修改Date对象的内部状态。如果多个线程同时访问和......
  • 管理系统服务 -- systemctl
    功能介绍systemctl是用于管理系统服务的命令行工具,常用于Linux系统中。提供了对系统服务(包括启动、停止、重启、启用、禁用等)的控制,以及对系统单元(units)的操作。语法结构systemctl的基本语法结构为:systemctl[option][command][unit]option:选项,用于指定不同的操作。......
  • 【Mathematical Model】Python拟合多元方程(线性回归)
    ​         Python中可以使用多种库进行拟合方程,其中最常用的是NumPy和SciPy。NumPy是一个用于处理数组和矩阵的库,而SciPy则提供了大量的科学计算函数,包括拟合算法。    之前已经分享过一元一/二次方程的拟合,有兴趣的可以查看:Python拟合一元方程。今天给大家......
  • Multivariate Function in Mathematics Education: 30 Engaging Blog Posts for Teach
    1.背景介绍在数学教育领域,多变量函数是一个非常重要的概念。它们在许多实际应用中发挥着关键作用,例如经济学、生物学、物理学等领域。然而,在教育中,多变量函数的教学和学习往往受到一些挑战。这篇博客文章将探讨如何通过30个有趣的博客帖子来提高多变量函数在数学教育中的教学质量。......
  • STL-常用容器-string
    3STL-常用容器3.1string容器3.1.1string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。cplusplus.com/reference/string/string/也可打开上面这个网站查......