java类

常见类
图示如下:
在这里插入图片描述

类 Object

类 Object 是类层次结构的根类,每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法。

  • clone()创建并返回此对象的一个副本
  • equals(Object obj) 指示其他某个对象是否与此对象“相等”
    equals 方法在非空对象引用上实现相等关系:
    自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
    对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
    传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
    一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
    对于任何非空引用值 x,x.equals(null) 都应返回 false。
  • getClass() 返回此 Object 的运行时类
  • hashCode() 返回该对象的哈希码值
hashCode的常规协定是:
    1.在java应用程序执行期间,在对同一对象多次调用hashCode()方法时,必须一致地返回相同的整数,前提是将对象进行equals比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
    2.如果根据equals(object)方法,两个对象是相等的,那么对这两个对象中的每个对象调用hashCode方法都必须生成相同的整数结果。
    3.如果根据equals(java.lang.Object)方法,两个对象不相等,那么对这两个对象中的任一对象上调用hashCode()方法不要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。      
  • toString() 返回该对象的字符串表示

类 String

字符串是常量;它们的值在创建之后不能更改。

  • string.length()是用来求字符串的长度,返回值为字符串的长度
> char chars[]={'a','b'.'c'};
>String s=new String(chars);
>int len=s.length();
  • string.charAt()截取指定位置处字符
>char ch;
>ch="abc".charAt(1); 返回'b'
  • getChars() 截取多个字符
    void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
    指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此, 子串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart。
>String s="this is a demo of the getChars method.";
>char buf[]=new char[20];
>s.getChars(10,14,buf,0);
  • equals()和equalsIgnoreCase() 比较两个字符串
  • startsWith()和endsWith()  startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束
  • string.replace()为将原string 中的元素或子串替换。返回替换后的string
  • compareTo()和compareToIgnoreCase() 比较字符串
  • indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。
  • string.toUpperCase()为将字符串string中字符变为大写
  • string.toLowerCase()为将字符串string中字符变为小写
  • string.trim()为去除字符串的头为空格
  • string.toCharArray()为将字符串转换为字符数组
  • substring()
第一种是:String substring(int startIndex)
第二种是:String substring(int startIndex,int endIndex)
  • concat() 连接两个字符串
  • replace() 替换
第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
String replace(char original,char replacement)
第二种形式是用一个字符序列替换另一个字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)

注意
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。

>String s1="Hello";
>String s2=new String(s1);
>s1.eauals(s2); //true
>s1==s2;//false

类Scanner

首先要引入包import java.util.Scanner;

它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
Scanner reader=new Scanner(System.in);

  • 逐行扫描文件,并逐行输出
>Scanner cin=new Scanner(System.in);
>     while(cin.hasNext()){
>           System.out.println(cin.next());
>     }

注意
next() 与 nextLine() 区别
next():

1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。

nextLine():

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。

类 StringBuffer

StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

  • public StringBuffer(int capacity): 指定容量的字符串缓冲区对象
  • public int capacity():返回当前容量(理论值)
  • public int length():返回长度(字符数&&实际值)
  • public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
  • public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
  • StringBuffer的删除功能
    public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
    public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
  • StringBuffer的替换功能
    public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换
  • public StringBuffer reverse(): 字符串反转
  • StringBuffer的截取功能
    public String substring(int start): 从指定位置截取到末尾
    public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
>package No13.B;
>/**
>* FileName: Day13B6
>* Date:     2018/10/24 11:10
>*/
>public class Day13B6 {
>   public static void main(String[] args) {
>        StringBuffer buffer = new StringBuffer("Hello");
>       //向StringBuffer对象中添加新数据"World"
>        buffer.append("world");
>       //向StringBuffer对象Hello与World之间插入"Java"
>        buffer.insert(5,"java");
>       //把StringBuffer对象中"World"删除
>       buffer.delete(9,14);
>       //把StringBuffer对象中"Hello" 更改成"Hi"
>       buffer.replace(0,5,"hi");
>        System.out.println( buffer.toString() );
>    }
>}

总结
String与StringBuffer二者之间的区别

1.就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
2.StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,
3.插入、删除等操作,使用StringBuffer要更加适合一些。String对象创建以后就不能修改了,除非让String类型的引用指向另一个String对象。
StringBuffer与StringBilder二者之间的区别
stringbuffer 与 stringBuilder,它们都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上进行操作的,不像string一样不断的创建对象来操作,所以速度快了。
实现StringBuffer和String的相互转换
String -> StringBuffer
方式一:构造方法
方式二:通过append方法
StringBuffer -> String
方式一:通过构造方法
方式二:通过toString方法
==与equals()方法的区别
== : 操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
equals:方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值