数组和字符串
- 构造方法(byte int long char float double String booelan型数组,为初始化的数组每个元素,基本类型默认0,boolean默认false,引用默认null,String是引用类型)
int[] a = new int[10]; a[0]=2; a[2]=3;
声明的同时初始化: int[] a=new int[]{1,2} int[] a={1,2}
- 常用方法Arrays的静态方法
- int a.Length
- void sort(int[] a)
- void sort(int[] a, int fromIndex, int toIndex)
- int binarySearch(a,key) 数组必须是有序的
- int binarySearch(a, int fromIndex, int toIndex,int key)
- int[] copyOf(a,int newlength) length>原数组,用0或null补充
- int [] copyOfRange(a, int from, int to)
- boolean equals(int[] a1, int[] a2)
- void fill(a, int val)
- void fill(a, int fromIndex, int toIndex, int val)
- List<T> asList(T... a)
- 数组的复制
- System.arrayCopy(src, srcPos,dest, destPos, int length)
- 数组的扩容 Arrays.copyOf(a,newlength)
- 调用Arrays.toString(a) 返回一个包含元素的字符串 [a,b,c,d],Arrays.deepToString(a) 返回多维数组的字符串,原数组的toString方法不是打印内容。
- 字符串操作
- 基本常识:java存储每一个字符均使用2个字节保存,使用的是Unicode编码。并且任何一个字符(无论是英文还是汉字)每个字符的长度都是1。字符串是在常量池里面的。和静态变量一起的在方法区。
- 构造方法:
- String s = “Hello world!”
- String s = new String(String s)
- String(char[] c)
- String(StringBuilder builder)
- String(char[] value, int offset, int count)
- String(byte[] bytes)
- String(byte[] bytes, String charsetName)
- String(byte[] bytes,int off,int length,String charsetName)
- String(byte[] bytes,int off,int length)
- 常用方法:
- int length():返回当前字符串的长度。
- int indexOf(String s):indexOf(int ch)indexOf(String str, int fromIndex) indexOf(int ch, int fromIndex) 用来检查给定的一个字符在当前字符串中第一次出现的下标位置。当该字符串中并不包含给定的字符时,返回-1。
- int lastIndexOf(String s):用来检查给定的一个字符在当前字符串中最后一次出现的下标位置重载方式同上。
- String substring(int begin,int end):String substring(int begin):用来截取当前字符串的部分内容以获取这个子字符串。
- replace(String old,String new)
- String trim():将字符串两边的空白去除掉,
- char charAt(int index): 给定位置的字符
- 字符串转换字节数组: byte[] getBytes() getBytes(字符集)
- Char[] toCharArray() 转换成字符数组
- boolean endsWith(String suffix) boolean startsWith(String suffix):用来判断当前字符串是否是以给定的字符串开始结束的。这里要注意大小写是敏感的。
- 大小写转换: String toUpperCase(): String toLowerCase():
- boolean equals(String s) equalsIgnoreCase(String s) 将此字符串与指定的对象比较。
- int compareTo(String s) int compareToIgnoreCase(String s):返回字符串比较,从第一个字母比较
- String[] split(String s,int i) String[] split(String s)
- StringBuilder和StringBuffer区别
- 区别:StringBuffer是线程安全的,同步处理的,性能稍慢; StringBuilder是非线程安全的,并发处理的,性能稍快。
New StringBuilder();
New StringBuilder(String s);
- append(String str) 追加字符串;
insert (int dstOffset,String s) 插入字符串;
delete(int start,int end) 删除字符串;
replace(start,end,str) 替换字符串
reverse():字符串反转。
- == 和equals比较:==指的是地址,equals指的是内容,但是Object类的两个指得都是地址。
- String和StringBuffer、StringBuilder区别
String是final类型,不可变对象,重写了equal和hashcode方法,StringBuffer和StringBuilder是可变字符串,没有重写equal和hashcode方法。
- 补充,java方法参数的传递
6.1 值传递
方法调用时,实参 把它的值传递给对应的形参,方法执行中形参 值的改变传到方法里的参数类型是基本数据类型的都叫值传递,特别string类型也相当于这种值传递不影响实参 的值。
6.2 引用传递
也称为传地址。方法传入的是实参的地址而不是参数的值被传递给方法中相对应的形参,在方法执行中,对形参的操作实际上就是对实参的操作,方法执行中形参值的改变将会影响实参的值。传到方法里的参数类型是引用数据类型的都叫引用传递
数组和字符串
原文:https://www.cnblogs.com/zhouyanger/p/13548174.html