1、short和byte不能做无符号右移
1、System.out.print();是打印;
System.out.println();换行;
1、快捷键:crtl+/ ,在选定一定内容后,可以全部注释
2、符合运算符可以自动完成类型转换
3、continue的作用是跳过循环体中的剩余语句执行下一次循环。
4、foreach(type x: obj)
type x: 循环变量,依次将obj中的值赋给x; obj:一个可以被遍历的集合,例如数组
5、一维数组初始化:
①
int a[]=new int[3];
a[0]=7;
a[1]=2;
a[2]=6;
②
int b[]=new int[]{5,1,3};
③
int c[]={8,4,9};
6、获取数组长度:a.length
7、二维数组:
①二维数组的初始化
int a[][]={{6,4,7},{7,8,1}};
int b[][]=new int[][]{{6,5,7},{7,8,1}};
int c[][]=new int [2][3];
c[0][0]=1;
c[0][1]=2;
c[0][2]=3;
c[1]=new int[]{6,5,7};
②二维数组的长度,例如上一个式子,c.length=2(代表两行),c[0].length=3;(代表这一行有多少个元素)
③遍历二维数组
int a[][]=new int[][]{{1},{2,3},{3,4,5}};
第一种方法
for(int k=0;k<a.length;k++)
{
for(int c=0;c<a[k].length;c++)
{
System.out.println(a[k][c]);
}
System.out.println();
}
第二种方法
for(int i[]:a)//将所有行元素提取出来
{
for(int j:i)//将行中所有列元素提取出来
{
System.out.print(j);
}
System.out.println();
}
8、填充和批量替换数组:
如果要用到Arrays.fill(),就要在代码最前面加上import java.util.Arrays;
int arr[]=new int[5];
Arrays.fill(arr,94);//填充的效果
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
int arr2[]=new int[]{1,2,3,4,5,6,7,8,9};
Arrays.fill(arr2,1,4,0);//代表从位置1开始索引到位置4以前,全部改为数字0
for(int i=0;i<arr2.length;i++)
{
System.out.println(arr2[i]);
}
9、复制数组:
①、只要要用到Array.**()函数,都要在代码最前面用到import java.util.Arrays;
②、应用
int a[]=new int[]{23,52,12};
int newArr[]=Arrays.copyOf(a,3);//3代表新数组的长度
for(int tmp:newArr)
{
System.out.println(tmp);
}
③应用:
int a[]=new int[]{23,53,12,93,27,67};
int newArr[]=Arrays.copyOfRange(a,0,3);//表示复制,从[0,3)复制
for(int tmp:newArr)
{
System.out.println(tmp);
}
10、冒泡排序:
int a[]={62,3,432,30,49};
for(int i=1;i<a.length;i++)
{
for(int j=0;j<a.length-i;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("冒泡排序的结果为:");
for(int tmp:a)
{
System.out.print(tmp+" ");
}
11、选择排序:
int a[]={62,3,432,30,49};
int index;//保存当前最大的元素所在位置
for(int i=1;i<a.length;i++)
{
index=0;
for(int j=1;j<a.length-i;j++)
{
if(a[index]<a[j])
{
index=j;
}
}
int tmp=a[a.length-i];
a[a.length-i]=a[index];
a[index]=tmp;
}
System.out.println("选择排序的结果为:");
for(int tmp:a)
{
System.out.print(tmp+" ");
}
12、Array.Sort():数组的排序,括号里填数组名,是升序
13、将数组转换为字符串: Arrays.toString(数组名);可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
String 类
1、利用构造方法直接实例化: String a=new String("我爱清汤小肥羊");
2、字符数组拼接成字符串:
char chararray[]={'t','i','m','e'};
String a=new String(chararray);
3、利用字符数组实例化的第二种方法:public String(char[]value, int offset,int count);分别代表字节数组,起始位置,获取个数
char[] charArray={'时','间','就','是','金','钱'};
String a=new String(charArray,4,2);//则a="金钱"
4、连接字符串:
①使用+=运算符同样可以实现拼接字符串的效果
②contact(): 在末尾添加
String str="abc";
str=str.contact("de");
5、数字转换成字符串
①:显式转换:
String strInt=String.valueOf(126);
String strLong=String.valueOf(126L);
String strDouble=String.valueOf(126.123456);
String strFloat=String.valueOf(3.14f);
String strBoolean=String.valueOf(false);
②、隐式转换:
字符串=字符串+数字
String str1=""+123;//双引号可以自动将后面的数字转换成字符串
String str2="123"+456;
String a="1"+2+3+4;//a为1234
String b=1+2+3+"4";//b为64
String c="1"+(2+3+4);//c为19,这三个都为字符串,
规律:碰到字符串后,直接输出后面内容;
碰到字符串前,先做运算,后输出内容
碰到大括号,先运算大括号中的值,后输出内容
6、字符串长度: public int length()
String password="1234567890"
int size=password.length();
注意:①字符串:length(); 数组:length
②length()方法返回的字符串长度包括字符串中的空格
③null字符串不能使用length()
7、获取指定位置的字符:public char charAt(int index)//index代表要获取的索引位置
String name="Peter";
char ch=name.charAt(0);
String name="免贵姓郭";
char ch=name.charAt(name.length()-1);//此时ch就为 郭
8、获取子字符串的位置
①获取第一次出现的索引:public int indexOf(String str);
String str="We are the world";
int index=str.indexOf("e");//返回e第一次出现的位置,即是1
public int indexOf(String str,int fromIndex);第二个参数为起始位置
String str="We are the world";
int index=str.indexOf("e",3);//返回e从3位置之后第一次出现的位置,即是5
②获取最后一次(倒数第一次)出现的索引:public int lastIndexOf(String str);
String str="Let it go!Let it go!";
int lastIndex=str.lastIndexOf("t");//t最后一次出现的位置是15
public int lastIndexOf(String str,int fromindex);//fromIndex为起始位置,然后往前找第一个
String str="Let it go!Let it go!";
int lastIndex=str.lastIndexOf("t",14);//从14开始找,往前走,t最后一次出现的位置是12
9、判断字符串首尾内容
①判断字符串结尾内容:public boolean endsWith(String suffix), suffix代表要对比的字符串
String fileName="HelloJava.java";
boolean bool1=fileName.endsWith(".java");
boolean bool2=fileName.endsWith(".jpg");
System.out.println(bool1);//true
System.out.println(bool2);//false
boolean bool3=fileName.endsWith("a");//bool3=true,因为是判断结尾内容
boolean bool4=fileName.endsWith(".jav");//bool4=false,因为是判断结尾内容
②判断字符串句首内容: public boolean startsWith(String prefix), prefix代表要对比的字符串
String fileName="新华社书店从前方发来报道。。。";
boolean bool1=fileName.startsWith("新华社");
boolean bool2=fileName.startsWith("新华书店");
System.out.println(bool1);//true
System.out.println(bool2);//false
10、获取字符串数组:
①将字符串变成字符数组: public char[] toCharArray();
String str="这是一个字符串";
char[] ch=str.toCharArray();
for(char tmp:ch)
{
System.out.println(tmp);
}
11、判断子字符串是否存在:①public boolean contains(String string),string为要查找的字符串
String str="8888B888";
boolean bool1=str.contains("B");//true
boolean bool2=str.contains("H");//false
②也可以用indexOf()方法判断,如果有,则返回位置,且一定大于0;如果不存在,返回-1 。
12、截取字符串
①public String substring(int beginIndex),beginIndex表示开始截取的位置
②public String substring(int beginIndex,int endIndex);
13、字符串替换
①public String replace(CharSequence target,CharSequence replacement),旧字符串序列换成新字符序列
String str="馒头一文一个";
String restr=str.replace("一","壹");
System.out.println(restr);//馒头壹文壹个
②public String replaceAll(String regex,String replacement),将旧字符序列或正则表达式内容,替换成新字符串
注意:正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符,例如:“\\d”代表数字0~9中的任何一个,“\\d”就是元字符
String str="123456abc";
String replaceStr=str.replaceAll("\\d","?");//??????abc
③public String replaceFirst(),替换第一次(了解)
14、字符串分割: public String[] split(String regex), regex代表分割符号
String str="abc,def,ghi";
String[] strArray=str.split(",");
for(int i=0;i<strArray.length;i++)
{
System.out.println(StrArray[i]);
}
//abc
//def
//ghi
②限定分割次数:public String[] split(String regex,int limit); 分别代表分割符号,分割次数
String str="192.168.0.1";
String[] firstArray=str.split("\\.");//192 168 0 1
String[] secondArray=str.split("\\.",2);//192 168.0.1 分割两次即分完后为两部分
15、字符串的大小写转换
①将字符串变成大写 public String toUpperCase()
②将字符串变成小写 public String toLowerCase()
String str="abc DEF";
String strLow=str.toLowerCase();//abcdef
String strUp=str.toUpperCase();//ABCDEF
16、①去除首尾空白内容: public String trim();
String str=" a b c ";
String shortStr=str.trim();//a b c,只去除首尾空格
②去除字符串中所有空白内容
String str="a b cd e fg ";
String shortstr=str.replaceAll("\\s","");分别是正则表达式和空内容字符串,这样就全部删掉空格
17、①比较字符串是否相等: public boolean equals(String anotherString)
String name=new String("tom");
String dbvalue=new String("tom");
boolean bool=name.equals(dbvalue);//true
②忽略大小写比较; public boolean equalsIgnoreCase(String annotherString)
String str1=new String("abc");
String str2=new String("ABC");
boolean bool=str1.equalsIgnoreCase(str2);//true
③注意:
String name1=new String("tom");
String dbvalue1=new String("tom");//此时两个不相等
//如果没有用new
String name2="tom";
String dbvalue="tom";
//此时name2==dbvalue
可变字符串:
StringBuffer类:①可变字符序列,类似于String的字符串缓冲区,其实体容量会随着存放的字符串增加而自动增加
StringBuffer sbf=new StringBuffer();
StringBuffer sbf=new StringBuffer("abc");
StringBuffer sbf=new StringBuffer(32);//不等于new String("32");new StringBuffer(32)的意思:初始字符序列容量为32个字符,内存所占容量为32个字符;new String("32")代表出事字符序列值为“32”,内存所占容量为16个字符
new StringBuffer(32)的意思:初始字符序列容量为32个字符,内存所占容量为32个字符;
new String("32")代表出事字符序列值为“32”,内存所占容量为16个字符
②常用方法:追加字符序列: public StringBuffer append(Object obj),支持转义字符
StringBuffer sbt=new StringBuffer();
sbt.append("门前大桥下");
③修改制定索引处的值:public void setCharAt(int index,char ch)// index代表位置
StringBuffer sbf=new StringBuffer("123456");
sbf.setCharAt(3,'A');//3代表位置
④字符串反序 : public StringBuffer reverse()
⑤删除子字符串 public StringBuffer delete(int start,int end) start开始,end之前(也就是start ,end-1)
⑥与String类似的方法
StringBuffer sbf=new StrignBuffer("ABCDEFG");
int length=sbf.length();
char chr=sbf.charAt(5);//获取索引为5的字符
int index=sbf.indexOf("DEF");//获取DEF字符串所在的索引位置
String substr=sbf.substring(0,2);//获取从索引0开始至索引2之间的字符串
StringBuffer tmp=sbf.replace(2,5,"1234");//将从索引2开始至索引5之间的字符序列替换成“1234”
格式化字符串: String.format(String format,Object...args)