学习目标:
- Java的String类、static关键字、Arrays类、Math类
学习内容:
String类
-
常用方法
equals()用于比较字符串内容是否相等
String str1 = "abc"; String str2 = "aBc"; str1.equals(str2); //false "abc".equals(str1); //true
equalsIgnoreCase()用于比较两个字符串内容,但忽略大小写
String str1 = "abc"; String str2 = "aBc"; str1.equalsIgnoreCase(str2);//true
length()用于获取字符串长度
concat()用于在末尾追加字符
charAt()用于返回指定位置的字符
indexOf()用于查找第一次在母串中出现的位置,失败返回-1
substring ()用于截取字符串,返回为截取内容
substring (起始位置,结束位置)同用于截取字符串,但范围是【 )左闭右开String str1 = "abc1c234"; str1.length();//结果为7 str1 = str1.concat("5678");//abc12345678 str1.charAt(1);//b str1.indexOf("c");//2 String str2 = str1.substring(1);//bc1c2345678 String str3 = str1.substring(1, 3);//bc
toCharArray()将字符串转为新的字符数组
getBytes()将字符串转为新的byte类型数组
replace(oldString,newString)将newString替换掉oldStringString str1 = "abcde"; char[] ch = str1.toCharArray();//【a,b,c,d,e】 byte[] by = str1.getBytes();//【97,98,99,100,101】 str1 = str1.replace("ab","AB");//“ABcde”
split()方法用于分割字符串,返回为字符串数组
String str1 = "a#b#c#d#e"; String[] str2 = str1.split("#");//【"a","b","c","d","e"】
-
拼接字符串
定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:[word1#word2#word3]。
public static void connatArrayToString(int[] arr) { String lastString = "["; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { lastString = lastString.concat("word" + arr[i] + "]"); //lastString+="word"+arr[i]+"]"; } else { lastString = lastString.concat("word" + arr[i] + "#"); //lastString+="word"+arr[i]+"#"; } } //打印字符串 System.out.println(lastString); }
-
统计字符个数
键盘录入一个字符,统计字符串中大小写字母及数字字符个数
public static void stringCount() { Scanner sc = new Scanner(System.in); System.out.println("请输入一串字符"); String str1 = sc.next(); char[] ch = str1.toCharArray(); int capitalLettersCount = 0, lowercaseLetters = 0, number = 0, others = 0; for (int i = 0; i < ch.length; i++) { if ('A' <= ch[i] && ch[i] <= 'Z') { capitalLettersCount++; } else if ('a' <= ch[i] && ch[i] <= 'z') { lowercaseLetters++; } else if ('0' <= ch[i] && ch[i] <= 9) { number++; } else { others++; } } System.out.println("大写字母" + capitalLettersCount + "小写字母" + lowercaseLetters + "数字" + number + "其他字符" + others); }
Static
-
可以将成员变量或成员方法改为静态,该类的每个对象共享同一个类变量的值
static int num1 = 10;
static修饰的类变量,是所有该类对象共有且公用的,类对象1更改数值,类对象2使用的结果为类1使用后的结果
-
静态方法
当类中方法有static修时,调用则为类名.方法名()
-
静态代码块
static{}
仅在类加载时刻执行一次,new()第二个类对象也不会执行,构造方法则是new()几次执行几次,static优先级是高于构造方法、main() -
Arrays类
-
用于更方便操作数组,位于java.util.Arrays,只有java.lang中不需要导入
-
toString()将数组转为字符串,sort()对int类型数组升序排序
输入字符串排大小并且逆序输出Scanner input = new Scanner(System.in); System.out.println("请输入字符串"); String str1 = input.next(); char[] ch = str1.toCharArray(); Arrays.sort(ch); for (int i = ch.length-1; i >0; i--) { System.out.print(ch[i]); }
Math类
- 位于java.lang.Math
- 常用方法
abd()取绝对值
ceil()向上取整
floor()向下取整
round 4舍5入 - 使用 Math 类,计算在 -10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少个?
public static void countAbsNumber() {
int count = 0, number;
for (int i = -10; i <= 5.9; i++) {
number = Math.abs(i);
if (number > 6 || number < 2.1) {
System.out.print(i + " ");
count++;
}
}
System.out.println("共有" + count + "个");
}```
---