Java字符串和数组

一字符串
JAVA没有内置的字符串类型,而是在标准java库中提供了一个预定义类String。
1子串
String类的substring方法可以从一个较大的字符串提取一个子串。
例:String greeting=“Hello”;
String s=greeting.substring(0,3);
substring从0开始计数,直到3为止,不包括3。substring方法的第二个参数是不想复制的第一个位置。
2拼接 +连接
注:字符串后加一个空格,输出时也会加上这个空格。
3不可变字符串
String类没有提供用于修改字符串的方法,在JAVA中修改字符串首先提取需要的字符然后再拼接上替换的字符串。JAVA字符串中的字符无法修改,可以修改字符串变量greeting,让它引用另外一个字符串。
注:不可变字符串有一个优点,编译器可以让字符串共享。c++字符串可以修改,可以修改字符串的单个字符,c程序猿总将字符认为是字符型数组,这种认识是错误的,JAVA字符串更加像char*指针。
4检测字符串是否相等
可以使用equals方法检测两个字符串是否相等 s.equal(t)
注:一定不能使用= =运算符
二数组
数组是一种数据结构,用来存储同类型的集合
1数组的定义:
1 )int []a={1,2,3}
int[]a=new int[3]
int[]a=new int[]{1,2,3,}
2 数组的遍历:
1) for(int i=0;i 2) for(int a:arr){}for each语句
注:for(int i : arr)的意思就是说,遍历arr数组,每次遍历的整型用i 这个变量去接收。
相当于:
int i=0; //用于接收arr数组中的某一个对象
for(int j = 0;j i = arr[j];
}

3) Arrays .toString()
Java字符串和数组_第1张图片
Java里冒号的用法
1】for(int a:arr){}这个地方的冒号就是遍历arr的集合,取出每一个元素
2】三元运算符boolean?true的内容:false的内容
int a=1;
int b=3;
int i = a>b?3:1;//这个地方的冒号用来选择值,如果a大于b,那么i=3,否则i=1
3】跳转标记
outer:for(int i=0;i<5;i++){
for(int i=0;i<5;i++){
if(i= =3){
continue outer;
}
}
}
//这个地方就是跳转标识,可用来标记地方 里层循环 continue直接跳出外层循环,继续执行外层循环
4】switch选择
switch(i){
case 1:oprate…;break;
case 2:oprate…;break;
case 3:oprate…;break;
//用于switch选择,当i等于下面的值时,执行后面的操作,然后break跳出,如果没有break,那么将执行下面的oprate操作,一直到底!
default:break;
}

3一维数组的存储:
例:int[]arr={1,2,3,4,5};
int[]brr=new int[arr.length+1] Java字符串和数组_第2张图片
4一维数组的拷贝方式:
① 数组名.clone();
Java字符串和数组_第3张图片
②Arrays.copyof(原数组,拷贝数组长度);Java字符串和数组_第4张图片
注:Java字符串和数组_第5张图片
可以直接用arr=Arrays.copyof(arr,arr.length)

③ System.arraycopy(src(原数组), srcPos(原数组拷贝的起始位置), dest(目标数组), destPos(从目标数组的此位置开始拷贝), length);
Java字符串和数组_第6张图片
④ for 循环进行拷贝
Java字符串和数组_第7张图片
5一维数组的扩容
在这里插入图片描述
小结
Arrays.copyOf()方法会产生新的空间;
System.arraycopy()方法需要目标数组,由此拷贝数组,实际是对两个数组进行合并;

你可能感兴趣的:(Java基础)