一、声明和创建数组
创建一个数组,并且直接赋值;
int[ ] score = {89, 79, 76};//
int[ ] score = new int[ ]{89, 79, 76};
创建一个数组,并且定义好数组的大小;
score = new int[30];
avgAge = new int[6];
name = new String[30];
Scanner input = new Scanner(System.in);
循环给数组赋值;
for(int i = 0; i < 30; i ++){
score[i] = input.nextInt();
}
二、多维数组的定义与创建
二维数组举例
– int a[][]={{1,2},{3,4,0,9},{5,6,7}}
分解
– int a1[]={1,2}
– int a2[]={3,4,0,9}
– int a3[]={5.6.7}
– int a[][]={a1,a2,a3}
结论:Java中多维数组被作为数组的数组处理,并不是必须是一个规则的矩阵形式
三、字符串常用的方法
(1).equals()比较两个字符串是否相等,括号里面通常放需要比较 的字符串
(2).equalsIgnoreCase() 比较两个字符串是否相同,忽略大小写;
(3).toUpperCase()使用默认语言环境的规则将此 String 中的所有字符都转换为大写
(4). toLowerCase()使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
(5). intern()返回字符串对象的规范化表示形式。它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。
(6)String scoreSheet = "SQL:\t" + sqlScore + "\nJava:\t" + javaScore + "\nHTML:\t" + htmlScore; 数值型变量自动转换成String类型.
(7). concat()将指定字符串连接到此字符串的结尾。
String s = new String("你好,"); // A.concat(B):
//B字符串将被连接到A字符串后面
String b = new String("张三!"); // 输出:你好,张三!
String sentence = s.concat(b);
System.out.println(sentence);
(8). arraycopy(arr1, 0, arr2, 0, 5)将一个字符串中的任意段截取复制到另一个字符串;从arr1字符串的索引为0开始复制放到arr2字符串数组索引为0的地方,复制5个字节;
(9) Arrays.sort(arr1);将arr1数组从小到大排序;
(10)、String str ="abcabcabc";
. indexOf("a") 返回字符串中是否包含子字符串a,如果包含返回索引号如果不包含返回-1, 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索str.indexOf("ab",1),从第一个ab开始搜索整个字符串里面包含几个ab;
(11)、.lastIndexOf()返回指定字符在此字符串中最后一次出现处的索引。从指定的索引处开始进行反向搜索。.lastIndexOf("ab"),搜索字符串里面是否包含ab,从最后一个位置开始;
(12)、.substring(int start, int end) 从字符串索引号start开始截取到索引号end之前
(13)、.toCharArray()将此字符串转换为一个新的字符数组。例如:String dax=”sssiiwye”;
Char [] = dax.toCharArray; Char[]就将字符”sssiiwye”转换为:{s,s,s,I,I,w,y,e}.
(14)、.nextLine();整行录入,相比next();来说,next();遇到空格便会停止录入;
(15)、.trim();方法,去除字符串两端的空格;String Daxs=Dax.trim();
(16)、.replaceAll("a ", "");//replaceAll("( 里面是你要替换的值,可以包含任意值)","后面是要转换的值,可以为空"),这里就是把字符串里面所有的a变成一个空值;
(17)、.charAt();读取相对于当前位置的给定索引处的字符。
for(int i=str.length()-1; i>=0;i--){
System.out.print(str.charAt(i));//读取当前str字符里面的i索引处的字符输出,形成倒序输出字符串;
}
(18)、.replace使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。雷同于.replaseAll;举例如下:
String newStr=str.replace("b", "B");
System.out.println("原来的字符串:"+str);
System.out.println("新的字符串:"+newStr);
此时,str字符串里面的所有b都变成了大写B;并赋值给newStr;
(19)、StringBuffer 加强版的String
StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer里面的.append(“”)方法,直接在StringBuffer字符串里面添加新的任意字符串,可以为数字、英文、混合,其添加的字符串会自动加到原来的字符串后面;
例如:
String str=new String("abc");
StringBuffer strB = new StringBuffer("abc");
System.out.println("str="+str);
System.out.println("strB="+strB);
System.out.println("------------------------");
String Str2=str.concat("123");
strB.append("123")
.append("abcdefghi")
.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
System.out.println("str="+Str2);
System.out.println("strB="+strB);
输出:str=abc
strB=abc
------------------------
str=abc123
strB=abc123abcdefghiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
例子二:
strB.append(input.next()).append(" ");//append可以重复添加;将输入的input添加到strB后面,然后再添加一个“ ”空格;输入java,再输入SQL,则输出:java Sql;
(20)、.currentTimeMillis();返回一个与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
例如:
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
设置Start为程序开始时的时间(毫秒),end为程序结束时的时间(毫秒),用end减去start,就可以得到整个程序运行的时间(毫秒);
(21)、StringBuffer中的.insert(int,String);
例如:
StringBuffer strB=new StringBuffer("我你");
//声明一个StringBuffer对象//
Scanner input = new Scanner(System.in);
System.out.println("请输入一句话");
String str = input.next();
strB.insert(2(放到索引为2的位置上,这里定义位置) , str(这里添加新输入的字符串);
System.out.println(strB);
输入:ai
输出结果: 我你ai
(22)、Integer 类,Integer 类对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。
Integer 类中的.parseInt()方法;将字符串参数作为有符号的十进制整数进行解析;
例子:
String str ="18";
System.out.println(str+10);
//没有转换成数值,则会将10默认为字符加到Str后面,得到1810;
System.out.println(Integer.parseInt(str)+10);
//将Str转换为十进制整数,再加上10,就可以得到28;
Integer 类中的进制转换方法:如下
int num = Integer.parseInt(str);
System.out.println("二进制:"+Integer.toBinaryString(num));
System.out.println("八进制:"+Integer.toOctalString(num));
System.out.println("十六进制:"+Integer.toHexString(num));
(23)、startsWith();方法;测试此字符串是否以指定的前缀开始。
用法:.startsWith(a);判断该字符串是否以a开始;
.startsWith(a,1);判断该字符串从索引为1开始,第一个字符是否为a;
(24)、类 Character中的方法;
isDefined(char ch)
确定字符是否被定义为 Unicode 中的字符。
isDigit(char ch)
确定指定字符是否为数字。
isIdentifierIgnorable(char ch)
确定是否应该认为指定字符是 Java 标识符或 Unicode 标识符中可忽略的一个字符。
isJavaIdentifierPart(char ch)
确定指定字符是否可以是 Java 标识符中首字符以外的部分。
例如:如果以下任何条件为真,那么字符可能是 Java 标识符的一部分:
· 是一个字母
· 是一个货币符号(如 '$')
· 是一个连字符(如 '_')。
· 是一个数字
· 是一个数字字母(如罗马数字字符)
· 是个合成标记
· 是一个非空格标记
· isIdentifierIgnorable 对字符返回的是 true
isJavaIdentifierPart(char ch)
确定指定字符是否可以是 Java 标识符中首字符以外的部分。
如果以下任何条件为真,那么字符可能是 Java 标识符的一部分:
· 是一个字母
· 是一个货币符号(如 '$')
· 是一个连字符(如 '_')。
· 是一个数字
· 是一个数字字母(如罗马数字字符)
· 是个合成标记
· 是一个非空格标记
· isIdentifierIgnorable 对字符返回的是 true
isJavaIdentifierStart(char ch)
确定是否允许将指定字符作为 Java 标识符中的首字符。
当且仅当以下条件之一为真时,字符才可以作为 Java 标识符的首字符:
· isLetter(ch) 返回 true
· getType(ch) 返回 LETTER_NUMBER
· ch 是一个货币符号(如“$”)
· ch 是一个连字符(如“_”)。
参考使用代码:
System.out.println("请输入变量名:");
String var = input.nextLine();
//声明boolean false不合法 true合法
boolean hefa = true;
char[] chs = var.toCharArray();
if(!Character.isJavaIdentifierStart(chs[0])){
hefa=false;//当第一个字符不在Java标示符之内,hefa=false;
}
for(int i=1;i<chs.length;i++){
if(!Character.isJavaIdentifierPart(chs[i])){
hefa=false;//当除了第一个字符以外的字符不在Java标示符以外的字符里面,hefa为false;
}
}
if(hefa){
System.out.println(var+"合法变量名");
}else{
System.out.println(var+"不合法变量名");
}
(24)、split(String regex)
根据给定正则表达式的匹配拆分此字符串。
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:
Regex | 结果 |
: | { "boo", "and", "foo" } |
o | { "b", "", ":and:f" } |
参考使用代码:
String str="Tom,mary,King,Smith,Scott,John,Rose.mary";//定义一个字符串,里面有逗号若干;
String[] names=str.split(",");//使用.split方法,再方法参数放入“,逗号“,以逗号作为分隔符,将Str字符串里面的字符分成若干个字符,保存在字符串数组:names里面;
for(String s : names){
System.out.println(s);
}
//输出数组,变得到拆分结果;
(25)、isEmpty()
当且仅当 length() 为 0 时返回 true。
String str = "";
if(str.isEmpty()){
System.out.println("空字符串");
}
(26)、compareTo(String anotherString)
按字典顺序比较两个字符串。
int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。
按字典顺序比较两个字符串大小,于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;
参考使用代码:
if(name1.compareTo(name2)>0){//当name1和name2比较返回的值>0时,表示返回值为正数,则name1>name2;
System.out.println(name1+"比"+name2+"厉害");
}else if (name1.compareTo(name2)<0){ //当name1和name2比较返回的值<0时,表示返回值为负数,则name1<name2;
System.out.println(name2+"比"+name1+"厉害");
}else{
System.out.println(name2+"和"+name1+"一样");
}