ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java高级特性

2022-01-16 20:59:33  阅读:109  来源: 互联网

标签:Java String int 高级 特性 System --- 字符串 public


 Java高级特性

属于面向对象的使用

使用的就是API(Application Programming Interface):应用程序接口文档

学习的就是Java中常用的核心类以及核心接口,---->Jdk提供的

Object类:

每个类都有Object作为超类--->父类的意思

所有的类都默认继承自Object

常用方法:

public final Class getClass() (重要):获取当前正在运行的Class类对象(字节码文件对象

public String getName():获取当前类或者接口的名称,字符串形式 包名.类名

public int hashCode():理解 "一个地址值"不是实际意义的地址值,它是经过底层的哈希算法(hash)算出来的

public String toString():返回对象的字符串表示形式,

public boolean equals(Object obj):比较对象是否相等,引用该类型比较的是地址值是否相同

==和equals的区别

==:如果连接都是两个基本数据类型:比如int 比较的是数据值是否相等,如果连接的是引用类型,那么比较的是地址值是否相同。

equals()是Object类的方法,如果我们不重写Object的equals方法,默认比较的是两个引用类型的地址值是否相同,如果重写了equals方法而且同时重写了hashCode()比较的是成员信息是否相同!

Scanner类

构造方法:

public boolean hasNextXXX(){} XXX就对应的数据类型,判断下一个录入的数据是否为XXX类型

boolean hasNextInt() :判断是否下一个录入的是int类型

boolean hasNextLine(); 判断是否下一个录入的是String类型 int nextInt() {} 录入的是int类型

String nextLine(){} 录入的是String类型

先录入的String,在录入int,没问题

先录入int,在录入String,有问题

String类:(重点类)

//String中“==”与"equals"区别:
public class StringTest {
    public static void main(String[] args) {
        String s1="hello";
        String s2="world";
        String s3="helloworld";
        String s4="helloworld";
        String s5 = new String("hello") ;
        System.out.println(s3==(s1+s2));//false
        System.out.println(s3==s4);//true
        System.out.println(s3.equals(s1+s2));//false
        System.out.println(s3=="hello"+"world");//false
        System.out.println(s3.equals("hello"+"world"));//false
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2)) ;//true      
    }
}

String常用的判断功能

public boolean contains(String序列 s):字符串中是否包含指定的字符

public boolean endsWith(String suffix):是否以指定的字符串结尾

public boolean startsWith(String prefix):是否以指定的字符串开头

public boolean isEmpty()判断字符串内容是否空字符,长度为0,就是true

public boolean equals(Object anObject)-->重写Object,区分大小写判断字符串内容是否相同

public boolean equals(Object anObject):不区分大小写判断字符串内容是否相同

public class StringDemo2 {
    public static void main(String[] args) {
        String s="helloworldmanlovemystyle";
        System.out.println(s.contains("dman"));
        System.out.println(s.endsWith("yle"));
        System.out.println(s.startsWith("hell"));
        System.out.println(s.isEmpty());
    }
}
​

String类的获取功能(都必须掌握)

public char charAt(int index)获取指定索引出的字符值

public String concat(String str):拼接功能--->获取新的字符串,最传统的拼接使用+:字符串拼接符号 public int indexOf(int ch)返回指定字符第一次出现的字符串内的索引

public int indexOf(String str):返回指定字符串中子字符串第一次出现索引值

public int lastIndexOf(int ch):返回指定字符最后一次出现的索引

public int lastIndexOf(String str)

String substring(int beginIndex) :从指定位置开始默认截取到末尾--->返回一个新的字符串 String substring(int beginIndex, int endIndex) :从指定位置开始截取到指定位置结束

public String[] split(String regex):按照指定的分割符号--拆分成字符串数组

public class StringDemo2 {
    public static void main(String[] args) {
        String s="helloworldmen";
        System.out.println(s.charAt(3));
        System.out.println(s.concat("QQ"));
        System.out.println(s.indexOf("e"));
        System.out.println(s.lastIndexOf("e"));
        System.out.println(s.substring(5));
        System.out.println(s.substring(0,8));
        String str = "JavaEE-Python-Php-Go-R-Hadoop-C";
        String[] strArray = str.split("-");
        for (int i = 0; i <strArray.length ; i++) {
            System.out.println(strArray[i]);
        }
    }
}

String类的转换功能:

public char[] toCharArray():将字符串转换为字符数组

public byte[] getBytes():将字符串转换成字节数组---使用平台默认字符集编码

String的构造方法---String(byte[] bytes):使用平台默认字符集解码

public String toLowerCase():将字符串转换成小写

public String toUpperCase():将字符串转换成大写

Arrays工具类:可以将任何数组---转换成String public static String toString(int[]/byte[]/double[]/float[]/Object[]等等 )

万能方法:将任何数据类型转换成String

public static String valueOf(int/double/float/char[]/Object i)

public String replace(char oldChar,char newChar)

将指定的字符使用新字符进行替换

public String replace(String oldStr,String newStr)

替换指定字符串

import java.util.Arrays;
public class StringDemo {
    public static void main(String[] args) {
    String s = "好好学习天天向上" ;
    byte[] bytes = s.getBytes();
    System.out.println(Arrays.toString(bytes));
    String myStr = "今天老地方见" ;
        char[] chs = myStr.toCharArray();
        for (int i = 0; i <chs.length ; i++) {
            System.out.println(chs[i]);
            }
     String result = String.valueOf(100);
        System.out.println(result);
        }

安装字典顺序比较

public int compareTo(String anotherString)

StringBuffer:字符串缓冲区--->里面都存储的可变的字符序列

构造方法

StringBuffer() 空参构造

StringBuffer(String str):有参构造

获取功能:

int length():获取字符串缓冲区的长度(里面实际的字符序列的长度)

public int capacity():获取缓冲区的容量大小

添加功能

public StringBuffer append(任何类型数据) :追加功能 (常用的),返回值是字符串缓冲区本身,在缓冲区中的默认的字符序列后面依次追加。

public StringBuffer insert(int offset,char c/String str):返回值是字符串缓冲区本身,在指定的位置插入指定的字符或者字符串。

public StringBuffer deleteCharAt(int index):删除指定索引处的字符,返回字符串缓冲区本身

public StringBuffer delete(int start,int end):删除从执行位置开始到指定位置的字符序列,不包括end位置,是end-1处,返回字符串缓冲区本身

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer() ;
        sb.append(12);
        sb.append("q");
        sb.append("wert");
        System.out.println(sb);
        sb.insert(3,"插入");
        System.out.println(sb);
        System.out.println(sb.deleteCharAt(2));
        System.out.println(sb.delete(4,7));
    }
}

StringBuffer的反转功能:

StringBuffer reverse() 返回字符串缓冲区本身

截取功能和String类型的截取功能一样,

String subString(int beginIndex):从指定位置默认截取到末尾--->String

String subString(int beginIndex,int endIndex)--->从指定开始,截取到指定位置结束endIndex-1出,返回的新的字符串

StringBuffer和StringBuilder有什么区别?

共同点:就是具有相互兼容的API(StringBuffer能用的StringBuilder也可以)
        都是支持可变的字符序列,不断在字符串缓冲区进行追加字符!
不同点:
       StringBuffer线程安全的类--->同步操作--->执行效率低
       StringBuilder线程不安全的类---不同步的操作--->执行效率高
//String--->StringBuffer
String s = "hello" ;
//1)StringBuffer的无参构造方法+append(String str)
StringBuffer sb = new StringBuffer();
sb.append(s) ;
//2)StringBuffer的有参构造方法StringBuffer(String s)
StringBuffer sb2 = new StringBuffer(s) ;
​
//StringBuffer--->String
StringBuffer buffer = new StringBuffer("JavaEE") ;
//1)String的构造方法String(StringBuffer sb)
String s = new String(buffer) ;
​
//2)StringBuffer的toString()方法
String s2 = buffer.toString() ;

Integer类---包含int类型的值

byte --- Byte

short--- Short

int --- Integer

long --- Long

float--- Float

double --- Double

char --- Character

boolean --- Boolean

Integer类的有些成员变量

public static final int MAX_VALUE ;自定义常量

public static final int MIN_VALUE ;

静态方法

public static String toBinaryString(int i):将十进制数据--->二进制数据的字符串形式

public static String toOctalString(int i):将十进制数据--->八进制字符串形式

public static String toHexString(int i):将十进制数据---->十六进制数据的字符串形式

Integer的构造方法

Integer(int value)--->可以将基本类型数据--->Integer

Integer(String s)throws NumberFormatException :将String--->Integer

形式参数必须为"数字字符串",否则如果不是数字字符串--->NumberFormatException出现数字格式化异常

public class IntegerDemo2 {
    public static void main(String[] args) {
        //Integer(int value)--->可以将基本类型数据--->Integer
        Integer i = new Integer(100) ; //它和Integer i = 100 ;//不一样
       // Integer ii = 100 ;//左边是Integer引用类型  右边:基本类型100
                // 底层执行的public static Integer valueOf(int i)
        System.out.println(i);
        System.out.println("-------------------------------") ;
        //Integer(String s)throws NumberFormatException
        Integer integer = new Integer("20") ;//数字字符串
        System.out.println(integer); //20
​
    }
}

1.String和int之间的相互转换
int--->String
1)使用字符串拼接符号+ 拼接空字符串""
2)通过int---->Integer的构造方法 Integer(int i)
    Integer的成员方法public String toString() 
3)直接就通过Integer的静态功能
    public static String toString(int i)
String ---> int :直接转换(推荐的方式)
Integer
    1)静态功能public static int parseInt(String str)
   2)String--->Integer--->int
   Integer的构造方法:Integer(String s):s必须为数字字符串,否则出现NumberFormatException
   Integer的成员方法
    int intValue()

Date类

public Date(long date):是字符串日期的文本格式

//Date--->String
    public static String date2String(Date date,String pattern){
        //一步走
        return  new SimpleDateFormat(pattern).format(date) ;
    }
    //String---Date
    public static Date string2Date(String source,String pattern) throws ParseException {
        return new SimpleDateFormat(pattern).parse(source) ;
    }
​

public class DateDemo {
    public static void main(String[] args) throws ParseException {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入你出生日期");
        String s=sc.nextLine();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
        Date date=sdf.parse(s);
        Long l=date. getTime();
        long day=l/86400000;
    System.out.println("你来到这个世界"+day+"天");
    }
}

Character:char类型保证类型

构造方法

Character(char value) 包含 char类型的值

Character类有三个判断判断经常用到

public static boolean isDigit(char ch):是否数字字符

public static boolean isLowerCase(char ch):是否为小写字母字符

public static boolean isUpperCase(char ch):是否为大写字母字符

标签:Java,String,int,高级,特性,System,---,字符串,public
来源: https://blog.csdn.net/bn643049694/article/details/122528103

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有