【黑马程序员】Object,Scanner,String类总结——Java复习笔记
来源:互联网 发布:淘宝客手机源码 编辑:程序博客网 时间:2024/06/02 02:59
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
Object类
(1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。(2)Object类的的构造方法只有一个无参构造(3)要掌握的方法: A:toString() 返回对象的字符串表示,默认是由类的全路径+’@'+哈希值的十六进制表示。建议子类通过自动生成重写该方法。 B:equals() 比较两个对象是否相同。默认情况下,比较的是地址值是否相同。所以,建议子类通过自动生成重写该方法。(String的equals方法比较的是值) ps:obj instanceof Student 表示判断obj对象是否是Student类的对象 (4)要了解的方法: A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。 B:getClass() 返回对象的字节码文件对象
Student s = new Student(); String str=s.getClass().getName();//输出为完整路径名:包名+类名
C:finalize() 用于垃圾回收,在不确定的时间 D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它是独立的一个对象,和两个引用指向同一个对象是有区别的。该方法返回的是obj对象。被克隆对象的类需实现Cloneable接口才能正常克隆。该接口是标记接口,无方法。(5)需要注意的问题; A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。 B:equals()只能比较引用类型。默认情况下,比较的是地址值是否相同。一般根据自己的需要重写该方法。String类的equals方法是比较内容
Scanner的使用
(1)在JDK5以后出现的用于键盘录入数据的类。(2)构造方法: A:System.in其实是标准的输入流,对应于键盘录入 B:构造方法 InputStream is = System.in; Scanner(InputStream is)(3)基本方法格式: A:hasNextXxx() 判断是否是某种类型的 返回值是boolean B:nextXxx() 返回某种类型的元素 next()和nextLine()区别:前一个是以回车或空格为分隔符,一次取一个单词,后一个是以回车为分隔符,一次取一行。(4)需要注意的小问题 A:同一个Scanner对象,先获取数值,再获取字符串会出现一个小问题。 B:解决方案: a:重新定义一个Scanner对象 b:把所有的数据都用字符串获取,然后再进行相应的转换 c:用空格而不是回车隔开
String类的概述和使用
(1)构造方法:
A:public String()B:public String(byte[] bytes) //吧字节数组转成字符串C:public String(byte[] bytes,int offset,int length) //吧字节数组的从offset索引开始的length长度的字节转成字符串D:public String(char[] value)E:public String(char[] value,int offset,int count)F:public String(String original) //吧字符串常量值转成字符串
下面的这一个虽然不是构造方法,但是结果也是一个字符串对象 G:String s = "hello";(2)字符串的特点 A:字符串一旦被赋值,就不能改变。 注意:这里指的是字符串的内容不能改变,而不是引用不能改变。 字符串缓冲区的字符串可以改变 B:字面值作为字符串对象和通过构造方法创建对象的不同 String s = new String("hello");和String s = “hello"的区别? 后者不在堆内存中开辟空间(3)看程序写结果
String s1 = "hello"; String s2 = "world"; String s3 = "helloworld"; System.out.println(s3 == s1 + s2);// false s1s2俩变量相加,会先开空间再拼接,所以地址值肯定不一样 System.out.println(s3.equals((s1 + s2)));// true System.out.println(s3 == "hello" + "world");// true 俩常量相加是直接拼接得helloworld发现常量池里有一样的就直接用了,不创建 System.out.println(s3.equals("hello" + "world"));// true
(4)字符串的功能 A:判断功能
boolean equals(Object obj) //比较内容 boolean equalsIgnoreCase(String str) //比较内容,忽略大小写boolean contains(String str) //判断大字符串中是否包含小字符串boolean startsWith(String str)//判断字符串是否以某个指定的字符串开头boolean endsWith(String str)boolean isEmpty() //判断字符串是否为空
B:获取功能
int length() char charAt(int index) //获取指定索引位置的字符int indexOf(int ch) //返回指定字符在此字符串中第一次出现的索引 输入字符、数字都行int indexOf(String str) //返回指定字符串在此字符串中第一次出现的索引int indexOf(int ch,int fromIndex)//返回指定字符在此字符串中从指定位置开始第一次出现的索引,没有则返回-1int indexOf(String str,int fromIndex)String substring(int start) //从指定位置start开始截取字符串String substring(int start,int end) //从start位置开始截取字符串 包括start不包括end
C:转换功能
byte[] getBytes() //把字符串转为字节数组char[] toCharArray() //把字符串转为字符数组static String valueOf(char[] chs) //吧字符数组转为字符串static String valueOf(int……) ////吧任意类型数据转为字符串String toLowerCase() //吧字符串转为小写 返回的是新的String对象。传入的字符串不变String toUpperCase()String concat(String str) //吧字符串拼接
D:其他功能 a:替换功能 String replace(char old,char new) String replace(String old,String new) b:去空格功能 String trim() //只去掉前后两端的空格,中间的不管 c:按字典比较功能 int compareTo(String str) //从第一位开始按字典顺序比较俩字符串 注意返回值是int。返回的是该位字符 - 被比较的字符。第一位相同则比较第二位,第一位就不同则直接返回 int compareToIgnoreCase(String str) (5)String类的练习 1.把首字母转大写,其他转小写
public static void formatNum(String str){ //substring包左不包右,所以这里截取的第一个字母 String first = str.substring(0,1).toUpperCase(); String rest = str.substring(1,str.length()).toLowerCase(); System.out.println(first+rest); }
2.统计数字,大写,小写出现的次数
public static void tongjiNum (String str){ int num = 0;//数字出现的次数 int upcase = 0;//大写出现的次数 int downcase = 0;//小写出现的次数 //挨个遍历 for (int x = 0;x<str.length();x++){ if (str.charAt(x) >='A' && str.charAt(x)<= 'Z'){ //如果是大写字母 upcase++; }else if (str.charAt(x)>='a' && str.charAt(x)<='z'){ //如果是小写字母 downcase++; }else if (str.charAt(x)>='0' && str.charAt(x)<='9'){ //如果是数字 num++; } } System.out.println("数字"+num+"个"); System.out.println("大写"+upcase+"个"); System.out.println("小写"+downcase+"个"); }
3.字符串反转
public static void reverseNum(String str){ String newStr ="";//创建一个空字符串 //倒着遍历 for (int x = str.length()-1;x>=0;x--){ //拼接 newStr += str.charAt(x); } System.out.println(newStr); }
4.查找指定字符串出现次数 方法1
public static void findNum (String str,String find){ int count =0; int index; index = str.indexOf(find); //第一次查找并把返回的索引值赋值给index while (index != -1){ // 判断index是否 不等于-1 是则执行循环 否则不执行 count++; //执行循环说明index不为-1,所以出现一次,计数 index += find.length(); //从 index+find.length()位置开始下一次查找 index = str.indexOf(find,index); } System.out.println("共出现"+count+"次"); }
方法2
public static void findNum2 (String str,String find){ int count =0; int index; while ((index=str.indexOf(find)) != -1){ count++; str = str.substring(index+find.length()); //从找到的位置 截取字符串并重新赋值 } System.out.println("共出现"+count+"次"); }
0 0
- 【黑马程序员】Object,Scanner,String类总结——Java复习笔记
- 黑马程序员——Java常用类笔记(上)【Object类/Scanner类、String类/StringBuffer类、包装类】
- 黑马程序员——java-几个常用的类(Object,Scanner,String,StringBuffer/StringBuilder)
- 黑马程序员——Java基础---常用类--Object类,Scanner类,String类,StringBuffer类,StringBuilder类
- 黑马程序员—java中的Scanner类学习笔记
- 黑马程序员_Java(object类,scanner类,string类)
- 黑马程序员————内部类、包、Object、scanner以及String
- 黑马程序员——常用API——Object,Scanner,String
- 黑马程序员———API之Object、String和Scanner
- 黑马程序员——常用API详解之Object、Scanner、String
- 黑马程序员——第五篇:Scanner、String类
- 黑马程序员——java.util.Scanner
- 黑马程序员--------JAVA---Object类String类
- 黑马程序员——基础学习(八)API中Object、Scanner以及String的用法概述
- 黑马程序员——JAVA String总结
- 黑马程序员——JAVA String总结
- 黑马程序员笔记——Java-String
- 黑马程序员——Java中的String类总结
- 单例模式的两种方式:饿汉模式与懒汉模式
- 这次空的好
- java.io包的总体框架图, 便于记忆!
- 黑马程序员—Java基础—网络编程2
- 常见浏览器兼容性问题与解决方案
- 【黑马程序员】Object,Scanner,String类总结——Java复习笔记
- 10003---JavaWeb开发基础--Servlet
- 同余运算
- HDU 5130 【2014广州现场赛 D】 Signal Interference
- Java enum的用法详解
- Web工程中创建Servlet常见的问题以及解决方法
- 二叉树的实现(递归遍历和非递归遍历)C++
- Extjs关于获取上传文件的格式和文件名
- 如何实现跳转ViewController实现黑透效果