java基础5

来源:互联网 发布:php基本知识 编辑:程序博客网 时间:2024/05/21 11:28

1.基本数据类型的包装类
定义:为了方便基本数据类型做更多操作,java就对这些基本类型的数据给出了对应的类类型,这就叫做包装类。
基本类型 类类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

2.Integer类
字段:
最大值:MAX_VALUE int类型最大值
最小值:MIN_VALUE int类型最小值
构造方法:
Integer(int value)
Integer(String s)
该字符串为数字字符串
成员方法:
toBinaryString(int i) 转换为二进制
toOctalString(int i) 转换为八进制
toHexString(int i) 转换为十六进制
int与String类型的相互转换
int——String
a: String s= 1+”“;
b: String.valueof(int);
c: Integer.toString(int);
String——int
Integer.parseInt(String);
自动装箱: 自动类型——包装类类型
Integer.valueof(110);
自动拆箱: 包装类类型——自动类型
i.intValue()
3.Character类
构造方法:
public Character(char value)
成员方法:
public static boolean isUpperCase(char ch) 判断是否是大写字符
public static boolean isLowerCase(char ch) 判断是否是小写字符
public static boolean isDigit(char ch) 判断是否是数字
public static char toUpperCase(char ch) 转成大写
public static char toLowerCase(char ch) 转成小写

package com.edu01;import java.util.Scanner;//需求:键盘录入一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)/** * 1.创建键盘录入 * 2.将字符串转化为字符数组 * 3.遍历数组定义三个变量来计数 * 4.输出这三个计数变量 * */public class Demo1 {    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        System.out.println("请输入一个字符串");        String s=sc.nextLine();        char[] arr = s.toCharArray();        int bigArr=0;        int smallArr=0;        int numArr=0;        for (int i = 0; i < arr.length; i++) {            if(Character.isUpperCase(arr[i])){                bigArr++;            }            if(Character.isLowerCase(arr[i])){                smallArr++;            }            if(Character.isDigit(arr[i])){                numArr++;            }        }        System.out.println("大写字母字符为:"+bigArr+"个");        System.out.println("小写字母字符为:"+smallArr+"个");        System.out.println("数字个数为:"+numArr+"个");    }}

4.Math类
成员方法:
public static int abs(int a) 取绝对值
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static int max(int a,int b) 两个数求最大值
public static double pow(double a,double b) a的b次方
public static double random() 产生一个[0,1)的随机数
public static int round(float a) 四舍五入

package com.edu01;import java.util.Scanner;//案例:猜数字小游戏/** * 1.用randow方法产生一个随机数 * 2.循环从键盘录入数据并进行判断是否与产生随机数相同,相同跳出循环 * 3.给用户返回游戏结束 * */public class Demo2 {    public static void main(String[] args) {        Scanner s = new Scanner(System.in);        int num = (int) (Math.random()*100+1);        int i=0;        while(i==0){            System.out.println("请猜测一个数");            int n = s.nextInt();            if(n>num){                System.out.println("猜大了");            }            if(n<num){                System.out.println("猜小了");            }            if(n==num){                System.out.println("你猜对了");                break;            }        }}}

5.Object类
介绍:Object类是所有类的根类,所有类都继承或间接继承自该类
toString方法
默认情况下,打印的是对象的字符串表示,意义不大。
包名…类名+@+该对象的哈希值的十六进制
eclipse中shift+alt+s可以重写toString方法
表示该对象的数据:
[类名 成员变量1=数据值1,成员变量2 =数据值2,…]
equals方法
默认情况下,比较的是地址值。没有意义。
重写该方法与toString方法相同
这个生成的方法作用是比较对象的成员变量值是否相同。
==和equals()的区别?
a.==的作用
a:基本类型 数据值
b:引用类型 地址值
b.equals()
只能比较引用类型。默认比较地址值。
如果重写后,是按照重写后的规则进行的。
6.Scanner:帮助我们从键盘获取数据。
构造方法:
Scanner(InputStream source)
Scanner sc = new Scanner(System.in);
System.in
in是System类下面的一个静态的成员变量。
成员方法:
int nextInt():获取int类型的数据
String nextLine():获取String类型的数据
当为同一个Scanner对象,数据的输入顺序问题:
String,String
String,int
int,int
int,String
出现的问题:
先int再String就出现了问题。
解决:
a.把所有的数据都按照String来拿。
String s1
String s2
String s3
将来要什么,就把String的数据转换为什么类型。
b.重新创建一个新的对象。
7.Random:用于产生随机数的类。和种子相关(种子其实可以把它看成一个产生随机数的定义的规则)。
构造方法:
Random():没有指定种子,采用的是默认种子。
Random(long seed):可以指定种子。种子相同,产生的随机数就相同。
成员方法:
public int nextInt():返回int范围内的数据
public int nextInt(int n):返回[0,n)之间的数据
得到1-100之间的随机数:
new Random().nextInt(100) + 1
8.System类
定义:System 类包含一些有用的类字段和方法。它不能被实例化。
成员方法:
public static void exit(int status) 终止当前正在运行的 Java 虚拟机。根据惯例,非 0 的状态码表示异常终止。
public static long currentTimeMillis() 获取当前时间的毫秒值。
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) 复制数组
参数一:要复制的源数组
参数二:从源数组那个索引开始复制
参数三:需要复制到哪个数组中
参数四:从哪个索引开始进行覆盖
参数五:需要覆盖几个元素
9.Date类
定义:Date 表示特定的瞬间,精确到毫秒。

构造方法:
Date():默认获取的是当前的日期时间
Date(long date):把当前日期按照指定的毫秒值进行设定
成员方法:
public long getTime():获取日期对象的毫秒值
public void setTime(long time):设置日期对象的毫秒值 10.DateFormat(格式化和解析日期对象)
格式化:
Date –String
String format(Date d)
解析:
String – Date
“2015-12-12”
Date parse(String s)
构造:
SimpleDateFormat()用默认的模式格式化日期对象
SimpleDateFormat(String pattern):用给定的模式格式化日期对象
例如:
yyyy年MM月dd日 HH:mm:ss
yyyy-MM-dd HH:mm:ss
成员方法:
public final String format(Date date) 将一个 Date 格式化为日期/时间字符串
public Date parse(String source)throws ParseException 从给定字符串的开始解析文本,以生成一个日期对象

package com.edu01;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;//键盘录入出生日期,算一下你来到这个世界多少天?/** * 1.创建一个键盘录入对象,为字符串格式 * 2.将字符串转化为日期格式 * 3.获取该日期的毫秒值 * 4.用当前毫秒值减去该毫秒值 * 5.转化成天数 * */public class Demo3 {    public static void main(String[] args) throws ParseException {        Scanner s = new Scanner(System.in);        System.out.println("请输入出生日期格式为:‘yyyy-MM-dd’");        String birthday = s.nextLine();        SimpleDateFormat spd = new SimpleDateFormat("yyyy-MM-dd");         Date d= spd.parse(birthday);        long myTime = d.getTime();        long nowTime=System.currentTimeMillis();        long time = nowTime - myTime;        long day =  time/1000/60/60/24;        System.out.println("你已经过了:"+day+"天");    }}

11.Calendar类
定义:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法
Calendar(日历类)–获取年,获取月,获取日,获取时,获取分,获取秒。
public int get(int field):返回给定日历字段的值。
成员方法:
public void add(int field,int amount):根据amount修改field的值
public void set(int year,int month,int date):设置当前日历的年月日

package com.edu01import java.util.Calendar;import java.util.Scanner;//获取任意一年的二月有多少天?/** * 1.获取年份 * 2.将时间调整为3月1号 * 3.将日期向前调1天 * 4.获取当前日期 * */public class demo1 {    public static void main(String[] args) {    Scanner s = new Scanner(System.in);    System.out.println("请输入当前年份");    int year = s.nextInt();    Calendar c =Calendar.getInstance();    c.set(year, 2, 1);    c.add(Calendar.DATE, -1);    System.out.println(c.get(Calendar.DATE));}}

12.正则表达式:
定义符:合一定规则的字符串
规则字符在java.util.regex Pattern类中
A:字符
x 字符x(举例:a,1)
\ 反斜线字符
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[0-9] 0-9字符
C:预定义字符类
. 任何字符
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
D:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

判断功能:
public boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
分割功能
public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
替换功能
public String replaceAll(String regex,String replacement):把符合regex的用replacement替换
需求:字符串中的数字使用*代替

package com.edu01;import java.sql.Array;import java.util.Arrays;//我有如下一个字符串:”91 27 46 38 50”//请写代码实现最终输出结果是:”27 38 46 50 91”/** * 1.创建一个字符串”91 27 46 38 50” * 2.定义一个正则表达式,并用split对字符串进行切割,定义一个string数组接收 * 3.用Integer.parseInt方法将string类型转为int数组 * 4.进行数组排序 * 5.定义一个stringbuffer字符串接收排序好的数组 * 6.用tostring方法转化成string数组 */public class demo {    public static void main(String[] args) {        String s="91 27 46 38 50";        String reg=" ";        String[] str = s.split(reg);        int [] arr = new int [str.length];        for (int i = 0; i < arr.length; i++) {            arr[i] = Integer.parseInt(str[i]);        }        System.out.println(arr);        Arrays.sort(arr);        StringBuffer sb=new StringBuffer();        for (int i = 0; i < arr.length; i++) {            sb.append(arr[i]+" ");        }        String s1=sb.toString();        System.out.println(s1);    }}
0 0
原创粉丝点击