实用类

编程入门 行业动态 更新时间:2024-10-09 14:26:41

实用类

实用类

常用JavaAPI

  • java.lang:(高频使用,默认导入)
    • Enum、包装类、Math、String、StringBuffer、System
  • java.util:(接口、类—工具类)
  • java.io:(输入输出)
  • java.sql:(数据库)

枚举:(enum)

  • java.lang.Enum

  • 指由一组固定的常量组成的类型(通过举例相类似的数据而组成的类型)

  • enum定义枚举

//性别枚举类型
public enum Genders {男,女
}
public class Student {public Genders sex;//性别public static void main(String[] args) {Student stu = new Student();//枚举使用后,保证了sex的正确赋值stu.sex = Genders.男;}
}
  • 优势:
    • 类型安全
    • 易于输入、赋值
    • 代码清晰

包装类:Object

  • java.lang.Object
  • 每个基本类型在java.lang包中都有一个相应的包装类
  • 作用
    • 提供了一系列对应的方法
    • 集合不允许存放基本数据类型。存放数字,要用包装类
基本数据类型对应的包装类父类
byteByteNumber
shortShortNumber
intIntegerNumber
longLongNumber
charCharacterObject
floatFloatNumber
doubleDoubleNumber
booleanBooleanObject
  • 所有的包装类都可将与之对应的基本数据类型做参数

  • 包装类的两种构造方法

    • 参数为基本数据类型

      		int iNum = 9;Integer i = new Integer(iNum);double dNum = 9.8;Double d = new Double(dNum);char cNum = 'c';Character c = new Character(cNum);float fNum = 9.8f;Float f = new Float(fNum);boolean bNum = true ;Boolean b = new Boolean(bNum);
      
    • 参数为字符串

      • 当Number类型的包装类构造方法参数为字符串时,字符串必须是能转换为Number的字符串,且字符串不能为null,否则会NumberFormatException
              Integer i2 = new Integer("123");System.out.println(i2+1);//124,不是1231Integer i3 = new Integer("love");System.out.println(i3+1);//124,不是1231Double d2 = new Double(12.2);System.out.println(d2+1);//Boolean类型的构造方法参数为字符串时,除了“true”(不区分大小写)之外的其他字符串,结果都为falseBoolean b2 = new Boolean("true");System.out.println(b2);//Character没有带字符串作为参数的构造方法,如下写法将不能编译//Character c2 = new Character("a");
      
  • 包装类的常用方法

    • XXXValue()包装类转换成基本类型

      Integer i = new Integer(23);

      int ii = i.intValue();

    • toString()基本类型转换成字符串

      String sex = Character.toString(‘男’);

      String id = Integer.toString(25);

    public class Test {public static void main(String[] args) {//XXXValue():包装类——>基本数据类型Integer i = new Integer(100);int iNum = i.intValue();Boolean b = new Boolean(true);boolean b2 = b.booleanValue();//toString():基本数据类型——>字符串int num = 100;String sNum = Integer.toString(num);boolean b3 = true;String s = Boolean.toString(b3);//常用方法:基本数据类型——>字符串;比toString()更常用String sNum2 = 100+"";String s2 = true+"";}
    }
    
    • parseXXX()字符串转换成基本类型(除Character)

      int num = Integer.parseInt(“36”);

      boolean b = Boolean.parseBoolean(“false”);

      public class Test {public static void main(String[] args) {//parseXXX():字符串——>基本数据类型String age = "18";int ageNum = Integer.parseInt(age);String score = "98.2";double score2 = Double.parseDouble(score);//编译报错:Character不存在parseXXX这个方法
      //        String sex = "女";
      //        char cSex = Character.parseChar(sex);    }
      }
      
    • valueOf()

      • 基本类型==>包装类

        Integer i = Integer.valueOf(21);

      • 字符串==>包装类(除Character外)

        Integer i = Integer.valueOf(“21”);

      public class Test {public static void main(String[] args) {//valueOf(基本数据类型):基本数据类型——>包装类int j = 90;Integer j1 = Integer.valueOf(j);char sex = '男';Character cSex = Character.valueOf(sex);//valueOf(字符串):字符串——>包装类String  m = "123";Integer m1 = Integer.valueOf(m);}
      }
      
  • 装箱和拆箱

    装箱:基本类型==>包装类

    拆箱:包装类==>基本类型

    • 基本类型和包装类的自动转换

      Integer i = 5;

      int ii = i;

import java.util.*;
//装箱和拆箱
public class Test3 {
public static void main(String[] args) {
//包装类——>基本数据类型 自动转换–>拆箱
Integer i = new Integer(100);
//int iNum = i.intValue();
int iNum = i;//拆箱
System.out.println(iNum);

    //基本数据类型——>包装类   自动转换-->装箱int j = 90;Integer j1 = j;//Integer j1 = Integer.valueOf(j);System.out.println(j1);//装箱//集合中只能存储包装类型,不能存储基本类型/*List list = new ArrayList();int num = 100;Integer numI = new Integer(num);list.add(numI);*/List list = new ArrayList();list.add(100); //int 100-->装箱Integer
}

}


##### ==*==**==包装类并不是用来替代基本数据类型的,只有基本数据类型需要用<u>*对象*</u>表示时才使用包装类==**# Math类* java.lang.Math
* 提供了常用的
* ==数学运算方法==
* ==两个静态常量==* **E(自然对数的底数)*** **PI(圆周率)**```java
//Math类常用方法
public class LuckyCard {public static void main(String[] args) {//提供了常用的数学运算的功能System.out.println(Math.abs(-8.8));System.out.println(Math.max(100,12));System.out.println(Math.min(43.3,32.3));//生成0.0(包括)--1.0之间的随机数System.out.println(Math.random());//生成一个0--9之间的随机数int i = (int)(Math.random()*10);System.out.println(i);}
}

Random类:(随机数)

  • java.util.Random

  • Random(种子);

  • 相同的种子构造的Random对象,生成的随机数是一样的

  import java.util.Random;public class RandomDemo {public static void main(String[] args) {//创建随机数生成器//随机数生产器的种子不同,每次生产的随机不同Random random = new Random(500);Random random1 = new Random(500);//常用写法1:/*Random random = new Random();*///常用写法2:// Random random = new Random(时间的毫秒);//生成随机数//System.out.println(random.nextInt());//生成一个int范围内的随机整数System.out.println(random.nextInt(10));//生成一个0-10范围内的随机整数System.out.println(random1.nextInt(10));//生成一个0-10范围内的随机整数}}

字符串

String

  • java.lang.String

  • String类的**length()**方法

    • 返回字符串的字符数
    import java.util.*;
    //用户注册,密码长度不能小于6位
    public class Register {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:");String name = scanner.next();System.out.println("请输入密码:");String pwd = scanner.next();if (pwd.length() < 6){System.out.println("注册密码不能小于六位");}else{System.out.println("注册成功!");}}
    }
    
equals()
  • String类的**equals()**方法

    • 比较存储在两个字符串对象的内容是否一致

    • 字符内容需完全一致,区分大小写

    • 字符串比较方法:

      • equals() 比较字符串内容是否相等

      • == 比较两个字符串的内存地址是否相等,比较字符串是否为同一对象

        ​ //创建了4个对象
        ​ String s1 = “hello”;//指向的是堆中的对象,创建了两个对象,字符串池hello对象,堆中hello对象
        ​ String s2 = new String(“Hello”);//指向的是堆中的对象,创建了两个对象,字符串池Hello对象,堆中Hello对象
        ​ System.out.println(s1.equals(s2));//false
        ​ System.out.println(s1==s2);//false

    import java.util.Scanner;
    //字符串 equals()方法
    public class Login {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:");String name = scanner.next();System.out.println("请输入密码:");String pwd = scanner.next();//假设数据库已经存储了用户注册成的用户名、密码if (name.equals("TOM") && pwd.equals("1234567")){System.out.println("登录成功");}else{System.out.println("用户名或密码不一致!");}//以前学习比较方法,基本数据类型 == 值是否相等/* int i = 8;int j = 8;System.out.println(i==j);*///-----------------------------------------------------//----------------------------------------------------//字符串比较方法:equals() 比较字符串内容是否相等// == 比较两个字符串的内存地址是否相等,比较字符串是否为同一对象//创建了1个对象/*      String s1 = "hello";String s2 = "hello";System.out.println(s1.equals(s2));//trueSystem.out.println(s1==s2);//true,此时s1和s2都指向字符串池中的对象*//*      //创建了2个对象String s1 = "hello";//指向的是字符串池中的对象String s2 = new String("hello");//指向的是堆中的对象System.out.println(s1.equals(s2));//trueSystem.out.println(s1==s2);//false
    *//*       //创建了3个对象String s1 = "hello";//指向的是字符串池中的对象String s2 = new String("Hello");//指向的是堆中的对象,创建了两个对象,字符串池Hello对象,堆中Hello对象System.out.println(s1.equals(s2));//falseSystem.out.println(s1==s2);//false*///创建了4个对象String s1 = "hello";//指向的是堆中的对象,创建了两个对象,字符串池hello对象,堆中hello对象String s2 = new String("Hello");//指向的是堆中的对象,创建了两个对象,字符串池Hello对象,堆中Hello对象System.out.println(s1.equals(s2));//falseSystem.out.println(s1==s2);//false}
    }
    
equalsIgnoreCase()
  • 不区分大小写

  • toLowertCase():转换为小写

  • toUpperCase():转换成大写

     Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名:");String name = scanner.next();System.out.println("请输入密码:");String pwd = scanner.next();//假设数据库已经存储了用户注册成的用户名、密码//if (name.toLowerCase().equals("TOM".toLowerCase()) && pwd.equals("1234567")){//if (name.toUpperCase().equals("TOM".toUpperCase()) && pwd.equals("1234567")){if (name.equalsIgnoreCase("TOM") && pwd.equals("1234567")){System.out.println("登录成功");}else{System.out.println("用户名或密码不一致!");}
    
trim():
  • 去掉字符串两端空格
        //去掉字符串两端空格的方法:trim()String name = "   admin   ";System.out.println(name.trim());//字符串连接String s1 = "hello";String s2 = "world!";System.out.println(s1+s2);

练习:

import java.util.Scanner;//会员注册
public class Register {//验证会员信息(用户名不能低于3位数,密码不能低于6位,两次输入密码必须相同public boolean verify(String name,String pwd1,String pwd2){boolean flag = false;//用户注册是否成功if (name.length()<3 || pwd1.length()<6){System.out.println("用户名长度不能小于3,密码长度不能小于6");}else if (!pwd1.equals(pwd2)){System.out.println("两次输入的密码不一致");}else{System.out.println("注册成功,请牢记用户名和密码");flag = true;}return flag;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String name,pwd1,pwd2;//用户名、密码、重复密码boolean flag;System.out.println("---------------欢迎进入用户系统--------------");Register register = new Register();do {System.out.println("请输入用户名:");name = scanner.next();System.out.println("请输入注册密码:");pwd1 = scanner.next();System.out.println("请确认密码:");pwd2 = scanner.next();flag = register.verify(name,pwd1,pwd2);}while (!flag);}
}
提取方法
方法名说明
public int indexOf(int ch)搜索第一个出现的字符ch,如果没有找到,返回-1
public int indexOf(String value)搜索第一个出现的字符字符串value,如果没有找到,返回-1
public int lastIndexOf(int ch)搜索最后一个出现的字符ch,如果没有找到,返回-1
public int lastIndexOf(String value)搜索最后一个出现的字符串value,如果没有找到,返回-1
public String substring(int index)提取从位置索引开始的字符串部分
public String substring(int beginindex,int endindex)提取beginindex和endindex之间的字符串部分
public String trim()返回一个前后不含任何空格的调用字符串的副本
 //获取字符串中特定字符串位置String s = "hello world!";//indexOf():查找某个字符串在整个字符串中第一次出现的位置//字符串下标从0开始int index = s.indexOf("o");System.out.println(index);//查找不到位置,返回-1int index2 = s.indexOf("yes");System.out.println(index2);//截取特定字符串内容//substring(index):从index开始截取,一值截到字符串末尾String result = s.substring(4);System.out.println(result);//substring(index1,index2):从index1截取到index2位置,但不包括index2String result2 = s.substring(4,8);System.out.println(result2);
 String word = "Hello,    ";word = word.trim();String s1 = word.concat("小鱼儿!");int inde = s1.indexOf(',');int inde2 = s1.indexOf('!');System.out.println(s1.substring(inde+1,inde2));//小鱼儿
拆分:split()
System.out.println("---------------------原歌词--------------------");String song = "长亭外 古道边 芳草碧连天 晚风拂柳笛声残 夕阳山外山";System.out.println(song);//把字符串拆分---> String[]String[] songs = song.split(" ");System.out.println("---------------------拆分后--------------------");for (String s:songs) {System.out.println(s);}

StringBuffer

  • 对字符串频繁修改时,使用StringBuffer类效率高
  • 常用方法:
    1. s.toString()转化为String类型
    2. s.append()追加字符串
    3. s.insert()插入字符串
//StringBuffer操作字符串时,操作的是字符串的本身,适用于频繁操作字符串StringBuffer s = new StringBuffer("hello");System.out.println(s.length());String news = s.toString();//StringBuffer -->StringSystem.out.println(news);s.append("world");System.out.println(s);s.insert(5,",");//在特点位置插入特定字符串System.out.println(s);
String VS StringBuffer
  • String操作字符串时,操作的是字符串的一个副本,字符串本身内容没有修改
  • StringBuffer操作字符串时,操作的是字符串的本身,适用于频繁操作字符串

日期和时间

Date

  • java.util.Date
  • 表示时间和日期

SimpleDateFormat

  • java.text.SimpleDateFormat
  • 定制日期时间格式
		//获取当前时间Date date = new Date();System.out.println(date);//定制日期格式化,年-月-日 时分秒SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateStr = format.format(date);System.out.println(dateStr);

Calendar

  • java.util.Calendar

  • 抽象类,用于设置获取时间日期数据的特定部分

  • 方法:

    方法或属性说明
    int get(int field)返回给定日历字段的值
    MONTH指示月
    DAT_OF_MONTH指示一月中的某天
    DAT_OF_WEEK指示一个星期中的某天
        //通过Calender来操作日期时间Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;//Calendar.MONTH要做+1的操作int day = c.get(Calendar.DAY_OF_MONTH);System.out.println("现在是:"+year+"年"+month+"月"+day+"日");//星期几,Calendar.DAY_OF_WEEK中sunday是1int week = c.get(Calendar.DAY_OF_WEEK)-1;System.out.println("今天是星期"+week);

更多推荐

实用类

本文发布于:2024-02-13 07:08:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757902.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!