Loop : for (){ for(){ break Loop;//这里的break为直接跳出Loop后的循环,而非跳出本级循环 continue Loop;//continue同理 } }
char a[] = {'I','am','java'}; String str = new String(a);
等价于
String str = new String("Iamjava");
new String(a,2,4)//从数组第二个开始截取,取四个字符形成新的字符串 :mjav
String str = "hello world"; int size = str.indexOf("o");//查找第一次出现该字符时的位置 int size = str.lastIndexOf("d")//查找最后一次出现该字符的位置
String str = "hello world"; char mychar = str.charAt(6);//查找设定位置中字符时是什么
String str = "xxxcccbbb" String substr = str.substring(3)//从第三个位置开始截取,形成新得字符串:cccbbb String substr = str.substring(3,6)//从第三个位置开始,第六个位置结束,截取新得字符串:ccc
### trim()函数
String str = " hello world "; str.trim();//去掉字符串前面和尾部的空格,保留字符串中的空格
### replace()函数
String str ; str.replace(oldchar,newchar);//将str中的字符替换为新得字符,如有多个,就都替换 //前提是oldchar和newchar都必须只是大小写关系比如'a''A'不能是'a''B'
boolean re = str.startsWith("abc");//判断字符串是否是以指定的字符串开头 boolean re = str.endsWith("abc");//判断字符串是否是以指定的字符串结尾 //两者都返回boolean类型
equals()函数是对字符串区分大小写的比较
而equalsIgnoreCase()对字符串比较不区分大小写,返回类型依旧是boolean (可用于验证码)
比较两个字符串在Unicode中值的大小
比如 b 与 a 比较 返回 1 ,b 与 c 比较 返回 -1 ,相同则为0(仅在equals中返回true时)
这两个方法的作用分别是将字符串的所有字符转换为小写和大写
str.split("分割符"); //如果想要多个分隔符,可使用“|”,例如 “,|=” 表示分割符为“,” 和 “=” str.split("分割符",分割次数)
分割符为想要以字符串的什么作为分割
如152.122.111.255 如果分割符为“ . ”那么就会被分割成4个数组
如果加上分割次数,例:分割次数为两次 会生成 “152” 和“122.111.255”两个字符串数组
String类型的格式化:详见Java从入门到精通清华大学版P92
相关规则详见详见Java从入门到精通清华大学版P92
String regex = ""//正则表达式 str.matches(regex);//判断str是否满足正则表达式 返回true或false
String类每次改变都会重新产生一个新得实例,会在内存中创建新的字符串对象。
StringBuilder操作消耗时间更少
StringBuilder str = new StringBuilder();//定义StringBuilder的方式
1、append(content)方法:向字符串中添加数据,content类型可以接收任何类型的数据
2、insert(int affset,arg)方法:用于向支付串中指定的位置插入数据内容,可插入int、float、char、boolean等基本类型或其他对象
offset:插入的具体位置;arg:插入的数据
3、delete(int start,int end)方法:删除指定位置的字符,删除到end-1位,如果start等于end,不发生任何更改。
int arr[]; int[] arr;//定义数组两种形式 arr = new int[20];//为数组分配内存
int arr[][]; int[][] arr; arr = new int[2][4];//为二维数组分配内存 arr[0] = new int[2]; arr[1] = new int[3];//为二维变量每一维度分配空间 int arr[][] = {{12,0},{22,3}};//为二维数组初始化值 /** 二维数组的遍历 **/ public class void main(String[] args){ int a[][] = new int[3][4]; for(int i = 0;i < a.length;i++){//查看二维数组的长度 for(int j = 0;j < a[i].length;j++){//查看每一维度的长度 System.out.println(a[i][j]); } } }
fill(int[] a,int value); //a:需要替换填充的数组 value:要储存进入数组的值 Arrays.fill(arr,8);//将arr数组中的元素全部替换为8 fill(int[] a,int start,int end,int value); //a:为要替换的数组 start:开始替换的位置 end:结束替换的后一个位置 value:要替换的元素
Arrays.sort(数组);//将数组从小到大进行排序
Java中的String类型数组的排序算法是根据字典编排顺序排序的,因此数字排在字母前面,大写字母排在小写字母前面
int arr[] = {1,2,3}; int newarr[] = Arrays.copyOf(arr,5);//arr表示需要赋值的数组,5表示复制几个从第一个开始计算,如果超出arr长度,以0补全 int newarr[] = Arrays.copyOfRange(arr,0,3); //arr作用同上,0表示从第几个开始,3表示复制复制到第几位前
Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组。
binarySearch([] a ,key);//a为搜索的数组,key为要搜索的值,返回搜索值的索引位置
必须在调用此函数前给数组排序:sort()函数,而且数组带有多个指定搜索的数,则值是不确定的。
binsarySearch([] a,start,end,key);//start和end为指定搜索的区间索引
基本思想:对比相邻的元素值,如果满足就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面
public class BubbleSort{ public static void main(String[] args){ //创建一个数组,这个数组元素顺序是混乱的 int[] array = {63,4,24,1,3,15}; //创建冒泡排序类的对象 BubbleSort sorter = new BubbleSort(); //调用排序方法将数组排序 sorter.sort(array); } public void sort(int[] array){ for(int i = 1;i<array.length;i++){ //比较相邻两个元素,较大的数往后冒泡 for(int j = 0;j<array.length-i;j++){ if(array[j] > array[j + 1]){ int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } } }
基本思想:找出数组中最大或者最小的,从数组中拿出来放到最前面或最后面,然后继续从剩下的数组中找出依次放到最前面或最后面,直到结束
public void sort(int[] array){ int index; for(int i = 1; i < array.length;i++){ index = 0; for(int j = 1;j <= array.length - i;j++){//找到数组中最大的数的下标 if(array[j] > array[index]){ index = j; } } //交换在位置array.length-i和index(最大值)上的两个数 int temp = array[array.length - i]; array[array.length - i] = array[index]; array[index] = temp; } }
基本思想:把数组顺序颠倒,比如123456排序后为654321
public void sort(int[] array){ int temp; int len = array.length; for(int i = 0;i < len / 2;i++){ temp = array[i]; array[i] = array[len - 1 - i]; array[len - 1 - i] = temp; } }
类是世间事物的抽象称呼,而对象是这个事物相对应的实体
面向对象程序设计特点:封装、继承、多态
private | protected | public | |
---|---|---|---|
本类 | O | O | O |
同包或子类 | O | O | |
其他包或子类 | O |
当声明类不使用权限修饰符时,声明的类预设为包存取范围,及只有本包的类可以调用这个类的成员变量和方法,如果类中的方法声明为public等权限符,无效
访问权限依旧和类权限相同。
局部变量:局部变量在方法执行时创建、在方法执行结束时销毁。
this除了可以调用成员变量或成员方法外,还可以作为返回值
return this;//返回该类
类名.变量名/方法名//调用静态元素
规定:
1、在静态方法中不可以使用this关键字
2、静态方法中不可以直接调用非静态方法
3、不能在常规方法中定义静态局部变量
==是比较两个字符串引用的地址是否相同,equals()是比较两个字符串的字符是否相同
Integer、Boolean、Byte、Character、Double、Number
两种构造方法:
1、Integer number = new Integer(7); 2、Integer number = new Integer("7");//要用数字的字符串,不然会报NumberFormatException错误