3.4.1 一维数组
boolean [] array; |
布尔型数组 |
float[] array; |
浮点型数组 |
double[]array |
双精度数组 |
3.4.2 创建一维数组
int[] array={1,2,3,4,5,6};
初始化数组:三种方法
int[] array = new int[6]; |
程序将会自动创建6个元素的数组 |
int[] array = new int[]{1,2,3,4,5,6,7,8}; |
自动创建8个元素的数组,并赋值 |
int[] array = {1,2,3,4,5,6,7}; |
自动7个元素的数组,并赋值 |
当数组赋值的时候,赋的是数组的内存地址,所以改变其中一个数组,另一个数组的值也跟着变化。
a2 = a1;a2++;则a1的值也增加1;
创建二维数组:[行][列]
int[][] array = {{1,2,3},{4,5,6}};
3.4.3 复制数组
arraycopy方法参数说明
System.arraycopy(arrayA,0,arrayB,0,a.length);
arrayA 要复制的来源数组名称
0 |
来源数组的起始位置 |
arrayB |
目的数组的名称 |
0 |
目的数组的起始位置 |
a.length |
复制来源数组元素的个数 |
inti;
intarr1[] = { 10,9,8,7,6,5,4,3,2,1};
intarr2[] = new int[10];
System.arraycopy(arr1,0,arr2,0,arr1.length);
System.out.prient(arr2[i]+'.');
for(i=0;i<arr2.length;i++)
System.out.print(arr2[i]+ ",");
System.out.println();
3.4.4 排序数组
Arrays.sort(a);;
Arrays.sort(array,method);
3.4.5 比较数组,返回boolean值
Arrays.equals(arrayA,arrayB);
3.4.6 搜索数组
a |
查找数组的名称 |
abc |
需要在数组中查找的内容 |
int i = binarySearch(a,"abc")
3.4.7 填充数组
//将11填充到数组中
Arrays.fill(array, 11);
3.4.8 传递数组
int array[] = new int[24];
modify(array);
//调用该数组的方法
voidmodifyArray(int b[]);
3.4.9 字符串声明
String str [= null];
Stringstr = "编程词典";
//String(byte[]bytes)构造方法
//该构造方法将使用当前平台的默认字符集编码和指定的byte数组(字节数组)构造一个新的字符串,新的字符串不易定等于波耶特数组的长度
newString(bytearray);
//String(bytes[]bytes,StringcharsetName)构造方法
//该构造方法使用一个字符数组构造一个新的字符串,新的字符串是字符数组所有元素连接的记过
newString (charArray);
publicstatic void main(String[] args){
byte[]byteArray=new byte[]{65,66,67};
Stringstr=new String(byteArray);
System.out.println(str);
char[]charArray=new char[]{'C','D','D'};
Stringstr;
str=newString(charArray);
System.out.println(str);
//StringBufferbuffer(缓冲字符串)生成字符串的内容是对象缓冲区中的所有内容
//String(StringBuilderbuilder)(字符串生成器)生成可变的字符号
3.5.0 字符串连接 "+"
//字符串与其他类型的连接,那么直接将这些数据变成字符串之后连接成一个字符串int、float、double、boolean、long、char
//字符串与对象连接,将调用toString()的方法,将对象变为字符串,输出的是创建该对象的类的全路径和内存地址,如果想输出正确结果选择重构toString()方法
publicclass Apple{
privateString name;
publicString getName(){
returnname;
}
publicvoid setName(string name){
this.name
}
publicString toString(){
Stringstr = "我是一个苹果,我的名字叫" + name;
returnstr
}
publicstatic void main(String[] args){
Appleobject = new Apple();
object.setName("胖胖");
System.out.println("Hello,"+object)
}
}
3.5.1 字符串操作:equals方法和equalsIgnoreCase()方法
//字符串是对象类型,不能简单使用==,==比较对象是内存地址
booleanequals(String str);
booleanequalsIgnoreCase(otherString);
3.5.2 str 要作比较的字符串对象
//boolean值,如果和String相等返回ture,如果不等返回false
//regoinMatches()将一个字符串中指定长度的子字符串与另一个字符串的子字符串作比较
regionMatches(toffset,other,ooffest,len);
toffset |
此字符串对象的子字符串开始处的索引号 |
other |
要比较的字符串 |
ooffset |
要比较的other字符串中子字符串开始处的索引号 |
len |
要比较的子字符串长度 |
//返回false:toffset为负、ooffset为负、toffset+len大于次String对象的长度或者ooffset+len大于另一个字符串长度的情况,则该方法返回false
//第二种重载方法,多了ignoreCase参数,用于指定字母大小写的对比方式
regionMatches(ignoreCase,toffset,other,ooffset,len);
ignoreCase |
指定对比的方式,如果为ture,则比较时忽略大小写 |
Stringstr="mingrikeji";
booleanrs=str.regionMatches(true, 0, str, 0,7)
System.out.println(rs);
//startsWith()方法和endsWith(),判断字符串是否以指定的内容开始或者结束
startsWith(str);
endsWith(str);
str.startsWith("ming");
str.endsWith("ming");
//compare To()方法,判断一个字符串是大于、等于还是小于 另一个字符串
intcompareTo(String str);
//获取字符串的长度
str.length()
Stringstr="mingrikeji";
intrs=str.length();
System.out.println(rs);
//字符串转换
str.toLowerCase();
str.toUpperCase();
//字符串查找
indexOf(); |
用于搜索字符或者自字符的首位置 |
lastInderOf(); |
用于搜索字符出现的最后一次的位置 |
str.indexOf(substr);
str.lastIndexOf(substr);
//指定搜索起点
indexOf(ch,startIndex);
lastIndexOf(ch,startIndex)
//ch要搜索的字符
//startIndex 开始查找位置的索引
//字符串的截取
str.substring(str,end);
str |
子字符串在整体字符串的起始位置 |
end |
子字符串在整体字符串中的结束位置 |
Stringstr= "明日科技";
Stringsubdtr = str.substring(0,6);
System.out.println(substr);
//字符串的替换
replece()
str.replace(oldstr,newstr);
str |
原有字符串对象 |
oldstr |
要替换的子字符串或者字符 |
newstr |
新的字符或字符串,用于替换原有字符或者字符串的内容 |
Stringstr="公司地址:明日科技";
str.replace("地址","名称");
System.out.println(str);
//去掉字符串两端的空格trim()
str.trim()
//字符串的分割
str.split(regex)
str |
一个字符串对象 |
regex |
分割字符串的分割符,也可以使用正则表达式来分割字符串 |
publicstatic void main(Stringp[] args){
Stringstr="公司名称:明日科技!公司坐在城市:长春市。公司电话:84972266";
String[]info = null;
info= str.split("!|。");
for(int i=0;i<info.length;i++){
System.out.println(info[i]);
}
}
//格式化字符串format(),字符转换
//第一种方法重载
format(String format,Object...args)
//新字符串使用本地语言环境和日期信息,使用指定的字符串和参数生成格式化的新字符串
format |
字符串格式 |
args |
字符串格式中由格式说明符引用的参数参数数目是可变的可以为零 |
//第二种重载方法
String.format(Locale locale,String format,args..);
//locale指定的语言环境
//format有多重字符串格式参数选项
%s |
字符串类型 |
mingrisoft |
%c |
字符类型 |
m |
%b |
boolean型 |
true |
/%d |
整数十进制 |
%x----十六进制 %o----8进制 |
%f |
浮点型 |
%a----十六进制浮点型 %g----通用浮点型 |
%e |
指数类型 %h----散列码 %%----百分比类型 %n---换行符 %tx---日期和时间类型 |
//搭配转换符的标志
+ |
为正数或者负数添加符 |
("%+d",15) |
+15 |
- |
左对齐 |
("%-d",15) |
|15 | |
0 |
在数字前面补0 |
("%04d",15) |
0015 |
空格 |
在整数前面添加指定数量的空格 |
("% 4d",15) |
| 15| |
, |
对数字进行分组 |
("%,f",151515,15) |
151,151.15 |
( |
使用括号包含负数 |
("%(f",-99.99) |
(99.990000) |
# |
浮点数则包含小数,16进制或者8进制,则在前面加0x或者0 |
("%#x",15) |
0X15 |
< |
格式化前一个转换符所描述的参数 |
("%f和%<3.2f",99.54) |
99.540000和99.54 |
$ |
被格式化的参数索引 |
("%1$d,%2$s",99,"abc") |
99,abc |
//日期和时间的格式化
c |
包括全部日期和时间信息 |
星期六 十月27 14:21:20 CST2007 |
F |
“年-月-日”格式 |
2007-10-27 |
D |
“月/日/年”格式 |
10/27/2007 |
r |
“HH:MM:SS PM”格式(12小时制) |
02:25:51 下午 |
T |
“HH:MM:SS”格斯(24小时制) |
14:28:16 |
R |
"HH:MM"格式(24小时制) |
14:28 |
//日期格式转换符
b或者h |
月份简称 |
中:十月 英:Qct |
B |
月份全称 |
中:十月 英:October |
a |
星期的简称 |
中:星期六 英:Sat |
A |
星期的全称 |
中:星期六 英:Saturday |
C |
年的前两位数字,不足补零 |
20 |
y |
年的后两位数字,不足补零 |
07 |
Y |
4位数字的年份,不足补零 |
2007 |
j |
一年中的天数,年的第几天 |
300 |
m |
两位数字的月份,不足补零 |
10 |
d |
两位数字的日,不足补零 |
27 |
e |
月份的日,不足补零 |
5 |
H |
两位数字24小时,不足补零 |
15 |
I |
两位数字12小时,不足补零 |
03 |
k |
两位数字24小时,不补 |
15 |
l |
两位数字12小时,不补 |
3 |
M |
两位数字分钟,不足补0 |
04 |
S |
两位数字秒,不足补零 |
04 |
L |
3位数字毫秒,不足补零 |
004 |
N |
9位数字毫秒,不足补零 |
000000009 |
p |
小写字母的上午或下午标记 |
中:小吴 英:pm |
z |
相对GMT的RFC822时区的偏移量 |
+0800 |
Z |
时区缩写字符串 |
CST |
s |
1970-1-1 00:00:00到现在所经过的秒数 |
1193468128 |
Q |
1970-1-1 00:00:00到现在所经过的毫秒数 |
1193468128984 |
//字符串生成器
new StringBuilder(capacity);
//创建一个容量为12的字符串生成器
StringBuilderbuilder = new StringBulder(12);
//使用指定字符串创建并初始化字符串生成器
newStringBuilder(String str);
//new Java语言的关键字,用于创建新的对象
//str 初始内容
StringBuilderbuilder = new StringBuilder("编程词典");
//字符串生成器的应用
//append(content) 用于向字符串生成器中追加内容,这个方法有多个重载的实现
//delete(int start,int end) 用于从字符串生成器中删除指定范围(从start到end-1)中的子字符串
//deleteCharAt(int index) 删除字符串生成器中指定索引位置的字符串
//insert(int offset,arg) 用于向字符串生成器中指定位置插入数据内容
//length() 用于返回字符串生成器中内容的长度
//每次修改string后都需要生成新的string,但是stringbuilder是在string本身上修改