javaAPI/Object/Scanner/String

一、Object

Object:是类层次结构的根类.每个类都使用 Object 作为超类(父类)

1public int hashCode()返回该对象的哈希码值 把它理解地址值(不是实际意义的地址值)

  //118352462                        纯数字;

2public final Class getClass()返回此 Object 的运行时类

  // class org.wesots_01.Student          返回class类型;

3public String getName()String 的形式返回此

// org.wesots_01.Student :全类名        以字符串显示当前的类;

   Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。返回值是Class

4public String toString(); 返回该对象的字符串表示

   Integer:int类型的包装类类型

   它里面提供了一个方法

   public static String toHexString(int i):以十六进制表示对字符串形式 

   直接输出对象名称:实际执行了Object中的toString(),输出的全类名@十六进制数据

   我现在输出对象名称,不想让toString()直接输出的是一个地址值(对象的地址值)

     就需要重写Object中的toSring(),一般情况:自动生成即可 建议所有子类都重写此方法。

5public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。

  ==:比较的值相等(地址值)

  equals:本身属于Object类中的方法,默认比较的是地址值是否相同

 按照正常情况:equals方法底层实际执行的两个对象在==,比较是地址值;

 在自定义的类中,重写Object中的equals()方法,比较是两个对象的成员变量的值是否相同.自动生成即可!

6protected Object clone()创建并返回此对象的一个副本

   Object类的clone方法执行特定的复制操作。首先,如果此对象的类不能实现接口Cloneable,则会抛出 CloneNotSupportedException

注意,所有的数组都被视为实现接口 Cloneable  

二、键盘录入

   1、键盘录入的步骤

    1)需要创建键盘录入对象:canner sc =new Scanner(System.in);

    2)导入包:  import java.util.Scanenr;   ctrl+shift+o

    3)接收数据: XXX 变量名= sc.nextXXX();

   2、构造方法:

      public Scanner(InputStream source): 以输入流的形式录入数据的

      InputStream:字节输入流:

      InputStream  in = System.in ; //底层执行返回的是一个字节输入流(标准输入流

 3Scanner类的一些常见的方法:

      XXX 变量名 = 键盘录入对象.nextXXX();

   4、Scanner类中它提供一个判断功能:

    5、boolean hasNextXXX():当前扫描器判断是否有下一个可以录入的XXX类型数据   nextXXX();

       6、java.util.InputMismatchException:录入的数据和接收的数据类型不匹配异常 

    7、问题:
    A、键盘录入两个int类型的数据,分别输出,没有问题
    B、键盘录入两个String类型的数据,分别输出:没有问题
    C、先录入一个String类型的数据,在录入int类型的数据,没有问题
    D、先录入一个int类型的数据,在录入String类型的数据,有问题:
第二个数据是字符串类型,又由于录入下一个数据要"空格"本身是一个字符串
        b是空格,b的值没有录入!
    如何解决:重写创建键盘录入对象
                  
int a = sc.nextInt() ;
		String b = sc.nextLine() ;
		//需要创建键盘录入对象
		Scanner sc2 = new Scanner(System.in) ;
		String b = sc2.nextLine() 

三、String类

 String:表示字符串: 字符串是常量;它们的值在创建之后不能更改。
 String是一种特殊的引用类型:  默认值:null

1、构造方法:
 String():无参构造
 String(byte[] bytes) :将字节数转换成字符串
  public String(byte[] bytes, int index,int length):将字节数组的一部分转换成字符串
  public String(char[] value):将字符数组转化成字符串              toCharArray():将字符串转换成字符
  public String(char[] value, int index, int count):将字符数组的一部分转换成字符串
  public String(String original):将一个字符串常量构造成一个字符串对象

  2、常用的方法:
  public int length()返回此字符串的长度
  
 面试题:
    数组中有没有length(),字符串中有没有length(),集合中有没有length()?

     数组中没有length()方法,只有length属性
     字符串中有length()
     集合中没有length(),获取集合的元素数:size( )  

 3、String类的常用的判断功能
  boolean equals(Object obj):将此字符串与指定的对象比较
  boolean equalsIgnoreCase(String str)将此 String 与另一个 String 比较,不考虑大小写
  
  boolean contains(String str):判断当前字符串中是否包含子字符串  (重点)
  boolean startsWith(String str):以当前str字符串开头(重点)
  boolean endsWith(String str):以当前str字符串结尾(重点)

  boolean isEmpty():判断字符串是否为空
  public String concat(String str):字符串的特有功能:拼接功能和+拼接符是一个意思

4、String类的常用获取功能:
    public int length():获取字符串的长度
    public char charAt(int index)返回指定索引处的 字符
    public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
    public int indexOf(int ch,int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
    public int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
    public int indexOf(String str,int fromIndex)回在此字符串中第一次出现指定字符串处的索引,从指定的索引开始搜索。

5、 截取功能
    public String substring(int beginIndex):从指定位置开始截取,默认截取到末尾,返回新的字符串
    public String substring(int beginIndex, int endIndex):从指定位置开始到指定位置末尾结束,包前不包含

6、String的常用转换功能:
    public byte[] getBytes() :将字符串转换为字节数组

    public char[] toCharArray() :将字符串转换成字符数组(重点)
    public static String valueOf(int i):将int类型的数据转换成字符串(重点) 这个方法可以将任何类型的数据转化成String类型
    public String toLowerCase():转成小写
    public String toUpperCase():字符串中所有的字符变成大写

7、String类型的其他功能:
    public String replace(char oldChar,char newChar):将大字符串中的某个字符替换掉成新的字符
    public String replace(String oldStr,String newStr):将大串中的某个子字符串替换掉
    public String trim():去除字符串两端空格
    public int compareTo(String anotherString)按字典顺序比较两个字符串

课后作业:
编程题:
 1: 字符串反转
   举例:键盘录入”abc”  
  输出结果:”cba”
 
package day09;

public class fanzhuan {
		public static void main(String[] args) {
				String a="abc";
				String b="";
				for (int i = 0; i < a.length(); i++) {
					b=b+a.charAt(2-i);//逆序反转
				}
				System.out.println(b);
			}
		}
 2:统计大串中小串出现的次数
  举例:
  在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"
  结果:
   java出现了5次
package day09;

public class lookfor {  
    public static void main(String[] args) {  
        // 创建大串  
        String Str1 = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";  
        // 定义小串  
        String Str2 = "java";  
        // 写功能实现  
        int count = getCount(Str1, Str2);  
        System.out.println(Str2 + "出现了" + count + "次");  
    }  
    /* 
     * 两个明确 返回值类型:int 参数类型:两个字符串 
     */  
    public static int getCount(String Str1, String Str2) {  
  
        int count = 0;  
        // 先在大串中查找一次小串第一次出现的位置  
        int index = Str1.indexOf(Str2);// 4  
  
        // 如果索引值是-1,就说明存在,统计变量++  
        while (index != -1) {// 4 8 10 13 12  
            count++;// 1 2 3 4 5  
            // 把刚才的索引+小串的长度作为起始位置截取原始大串,得到一个新的字符串,并把该字符串重新赋值给大串  
            int startIndext = index + Str2.length(); 
            Str1 = Str2.substring(startIndext);  
            index = Str1.indexOf(Str2);  
        }  
        return count;  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值