1.数组
1.数组的声明
注:[]的位置 可在数组名前或者后,都可以。
一维数组:
int f[]; //声明一个一维数组
int p[]=new int[5]; //声明一个一维数组,并且分配空间
int x[]={"1","5","2"}; //声明一个一维数组并且初始化
二维数组及以上:
int hh[][]; //声明一个二维数组
int adc[][]=new int [3][4]; //声明一个二维数组,并且分配空间
int ap[][]={"1,2,3","5,6,7"};//声明一个[3][2]大小的二维数组,并且初始化
int ez[][]=new int[3][];
ez[0]=new int[3];
ez[1]=new int[1];
ez[2]=new int[5];
//声明一个第二维数组长度不同的二维数组
2.数组注意点
- 如果没有明确的初始化数组元素,那么数组就会用默认的类型值初始化,例如假若没有初始化整型数组,元素都将默认值为0,没有初始化的boolean值是false,对象数组是null。
- 数组索引起始为0,负数索引在Java中是无效的,会抛出ArrayIndexOutOfBoundException ,如果你尝试用无效的索引访问数组,这个无效的索引可能是一个负索引,或者是大于等于数组长度的索引。
- 数组一个固定长度 的数据结构,一旦声明,你不能改变数组的长度,数组的长度为 数组.length 。
- Java中数组可以轻易的转换成ArrayList。ArrayList一个基于索引的集合,它是作为数组的备选方案。ArrayList的优点是可以改变容量大小,只需要创建个更大的数组然后拷贝内容到新数组,但你不能改变数组的大小(java的集合构架,以后再说)
3.Array类
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能(array是一个声明好的int数组):
- 给数组赋值:通过fill方法
Arrays.fill(array, 5);//array数组被5填充 - 对数组排序:通过sort方法,按升序。
Arrays.sort(array); - 比较数组:通过equals方法比较数组中元素值是否相等。
boolean a=Arrays.equals(array1,array2);//返回一个布尔值 - 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
Arrays.binarySearch(array, “adc”));//查找adc再array中的位置,返回其索引
2.字符串
1.String类
- String类再包 java.lang.*中,所以不需要引用包可以直接用。
- String对象的初始化:
String aStr="abc";
String bStr=new String("abc");
String cStr=new String(new char[]{'a','b','c'});
引用链接http://blog.csdn.net/cainiao123hack/article/details/7801179
String str=new String(“XXX”);
String str=”XXX”;
二者看似相同,其实有很大的差别。
前者是java中标准的对象创建方式,其创建的对象将直接放置到堆中,每调用一次就会创建一个新的对象;后者则会在栈中创建一个对象引用变量str,然后 查看字符串池中是否存在”XXX”,如果没有,则将”XXX”存放字符串池,并令引用变量str指向它;如果已经有”XXX”,则直接令str指向它。这样充分利用了栈的数据共享优点,当然也可能是一个陷阱,对象很有可能没有创建,只不过指向一个先前已经创建的对象;而new()方法则能保证每次都创建一个新的对 象。
2.String类常用方法
- charAt(index),根据索引值返回字符串中的指定字符
String s = “abc”;
char c = s.chatAt(1);
则变量c的值是’b’
- length(),返回字符串的长度
int len1 = s1.length();
- isEmpty(),返回boolean,判断是否为空
boolean a=s.isEmpty();
- equals(String),判断两个字符串对象的内容是否相同,返回boolean
boolean a=s.equals("abc");
s.equalsIgnoreCase("123A") //忽略大小判断字符串时都相等
- trim(),去掉字符串开始和结尾的所有空格,然后形成一个新的字符串,不去掉字符串中间的空格
String s = “ abc abc 123 “;
String s1 = s.trim();
则字符串s1的值为:“abc abc 123”,字符串s的值不变
- valueOf(基本数据类型),将其它类型的数据转换为字符串类型
int n = 10;
String s = String.valueOf(n);
- indexOf(char),查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1
String s = “abcded”;
int index = s.indexOf(‘d’);`
- lastIndexOf(char),从字符串的末尾开始向前查找第一次出现的规定的字符或字符串
- substring(startInedx,endIndex),取字符串s中从索引值2(包括)开始,到索引值5(不包括)的部分作为子串
String s = “abcded”;
String ss= s.substring(2,4);`
- 其他几个常用方法
s.startsWith("12") //判断字符串是否用“12”开头
s.endsWith("12") //判断字符串是否用“12”结尾
s.contains("wang") //判断字符串是否包含“wang”
s.replace("12", "456") //将字符串中的“12”用“456”替代
s.split("3") //将字符串用“3”进行分割,得到字符串数组
s.toUpperCase() //将字符串转换为大写
s.toLowerCase() //将字符串转换为小写
s.toCharArray() //将字符串转换为字符数组