目录
1.基本数据类型
2.流程控制
3.字符串
4.数组
5.类和对象
6.包装类
(1)Scanner类
(2)匿名对象
(3)random
(4)对象数组
(5)对象数组:
(6)arraylist集合
(7)string
7.数字处理类
匿名对象的说明:
package cn.itcast; /* 匿名对象的使用 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符 new 类名称() 匿名对象只能使用唯一的一次; 什么时候使用? 如果确定有一个对象只使用唯一的一次,就可以匿名对象; */ public class test { public static void main(String[] args) { //匿名对象 new person().str = "hello java"; new person().showstr(); } }1.简单使用
package cn.itcast; import java.util.Random; /* random类用来生成随机数字 */ public class test { public static void main(String[] args) { Random r = new Random(); int num = r.nextInt();//生成一个随机数 for(int i=0;i<10;i++){ //生成指定范围的数字 int number = r.nextInt(10); //范围是 0-9 System.out.println("random:"+number); } } }person类:
package cn.itcast; public class person { private String name; private int age; //无参构造 public person() { } public person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }从JDK1.5开始,支持自动装箱、自动拆箱
自动装箱:基本类型-包装类型
自动拆箱:包装类型-基本类型
基本类型对应的包装类表如下:
基本类型引用类型booleanBooleanbyteByteshortShortintInteger 【特殊】longLongfloatFloatdoubleDoublecharCharacter【特殊】(1)字符串创建
java.lang.string类代表字符串 Java程序中所有的字符串字面值(”abc“)都作为此类的实例实现 也就是说,所有双引号字符串,都是string类的对象(就算没有new,也是string对象) 字符串的特点: 1.字符串的内容永不可变 2.正是因为用不可变,所以可以共享使用 3.字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组 常见字符串的3+1种方式: 三种构造方法: public String():创建一个空白字符串,不含有任何内容 public String(char[] bytes) : 根据字符数组创建 public String(byte[] bytes) : 根据字节数组创建 直接创建: string str = ”abc“; package cn.itcast; public class test { public static void main(String[] args) { String str1 = new String(); System.out.println(str1); //字符数组创建 char[] arr = {'A','B','C'}; String str2 = new String(arr); System.out.println(str2); //字节数组 byte[] bytearr = {97,98,99}; String str3 = new String(bytearr); System.out.println(str3); //直接创建 } }(2)字符串常量池:
字符串常量池:程序当中直接写上的双引号字符串都在字符串常量池中 对于基本类型来说,==进行数值的比较 对于引用类型来所,==进行地址值的比较 字符串常量池保存的是byte[]的地址 public class test { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; char[] arr = {'a','b','c'}; String str3 = new String(arr); System.out.println(str1==str2); System.out.println(str2==str3); System.out.println(str1==str3); } } true false falsestr1和str2、str3内存分布
对于引用类型,==进行的是地址值的比较双引号直接写的字符串在常量池当中,new的不在池当中(3)使用方法
字符串使用方法 1.字符串的比较 (必须对象相同,而且内容相同) 2.获取字符串长度 length() 3.拼接字符串 concat() 4.获取指定索引的字符 charAt() 5.查找字符串在本字符串首次出现的位置,如果没有,返回-1 indexof(string str)1~4:
public class test { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; char[] arr = {'a','b','c'}; String str3 = new String(arr); String str4 = null; //字符串的比较 System.out.println(str1.equals(str2));//true System.out.println(str1.equals(str3));//true System.out.println("abc".equals(str2));//true //null此处 System.out.println("abc".equals(str4));//false //System.out.println(str4.equals("abc"));//不推荐,报错,空指针异常NullpointException //字符串的长度 String site = "www.runoob.com"; int len = site.length(); System.out.println( "菜鸟教程网址长度 : " + len ); //字符串的拼接 String string1 = "菜鸟教程网址:"; System.out.println("1、" + string1 + "www.runoob.com"); System.out.println("我的名字是 ".concat("Runoob")); //获取指定索引的字符 char result = site.charAt(6); System.out.println(result); } } 字符串的查找 1.public int indexOf(int ch) 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 2.public int indexOf(int ch, int fromIndex) 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 3.int indexOf(String str) 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 4.int indexOf(String str, int fromIndex) 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。 public class test { public static void main(String[] args) { String string = "aaa456ac"; //查找字符存在的位置 System.out.println(string.indexOf("b")); //-1,"b"不存在 System.out.println(string.indexOf("a",3));//返回结果:6 ,从第四个字符位置开始往后继续查找,包含当前位置 //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99 // 从头开始查找是否存在指定的字符 System.out.println(string.indexOf(99));//indexOf(int ch);返回结果:7 System.out.println(string.indexOf('c'));//indexOf(int ch);返回结果:7 System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex); 返回结果:6 System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex); 返回结果:6 //查找字符串存在的位置 String Str = new String("菜鸟教程:www.runoob.com"); String SubStr1 = new String("runoob"); String SubStr2 = new String("com"); System.out.print("子字符串 SubStr1 第一次出现的位置:" ); System.out.println( Str.indexOf( SubStr1 )); System.out.print("从第十五个位置开始搜索子字符串 SubStr1 第一次出现的位置 :" ); System.out.println( Str.indexOf( SubStr1, 15 )); System.out.print("子字符串 SubStr2 第一次出现的位置 :" ); System.out.println(Str.indexOf( SubStr2 )); } }字符串的截取:
/* 字符串的截取 substring(int index):截取参数位置直到最后结束,返回新字符串 substring(int begin,int end):取从begin到end,中间的字符串(左闭右开) */ public class test { public static void main(String[] args) { String str = "hello world"; System.out.println(str.substring(1)); System.out.println(str.substring(4,8)); //下边在字符串常量池开辟了两个字符串 hello java //s1先指向 hello 再指向java //s1保存的地址先后发生了改变 String s1 = "hello"; System.out.println(s1); s1 = "java"; System.out.println(s1); } }字符串的替换:
字符串转换的相应的方法: 1.字符串转成字符数组 toCharArray(); 2.字符串转成字节数组 getBytes(); 3.将所有出现的老的字符串转变成新的字符串,返回替换后的新的字符串 replace(charSequence oldstring,charSequence newSrtring) tip:charSequence指可以接收字符串类型 public class test { public static void main(String[] args) { //1.转成字符数组 String str = "abc"; char[] arr = str.toCharArray(); System.out.println(arr); //2.转成字节数组 byte[] bytes = str.getBytes(); for(int i=0;i<bytes.length;i++){ System.out.println(bytes[i]); } //3.字符串替换 String Str = new String("how do you do"); System.out.println(Str.replace('o', '*')); System.out.println(Str); } }字符串的分隔:
public class test { public static void main(String[] args) { String str = "aaa,bbb,ccc"; String[] arr = str.split(","); for(int i=0;i< arr.length;i++){ System.out.println(arr[i]); } } }注意情况:
split的参数是一个正则表达式 如果按照“.”,必须写“\\.” 因为"."在正则表达式中有特殊含义 public class test { public static void main(String[] args) { String str = "aaa.bbb.ccc"; String[] arr = str.split("\\.");//切分失败 for(int i=0;i< arr.length;i++){ System.out.println(arr[i]); } } }
