1字符串特点:内容永不可变 是一个常量,可以共享使用。
2常见的3+1种方法:3种构造方法 1public String()2public String(char[ ] array)
3puiblic String(byte[ ] array)
1直接创建(从字符串常量池种调出使用)
3字符串内容比较 :“abc”equals(str)推荐将常量写在前面,变量写在括号里
equalsIgnoreCase 比较时将不区分大小写
4字符串获取的相关方法1 int length() 获取字符串长度
2String concat(String str): 将当前字符串和参数字符串拼接,
返回值为新字符串
3char charat(int index):获取执行索引位置的单个字符
4int indexOf:查找一个字符串在原字符串中出现的索引位置
5字符串截取方法:1substring(int index)(左闭右开) 2substring(int begin,int end)
6字符串的转换 :1chars【】 to CharArray 2 get bytes 3 repalce(old , new)
7字符串的分割;1 String[ ] split(String regex"以哪个字符作为分割") 注:regex是正则表达式
如果按照英文句点"."是不能用来切分的,必须写成"\\."才可以
练习1将数组{1,2,3}转换为【word1#word2#word3】
/*定义一个方法 将数组{1,2,3}转换成【word1#word2#word3】的形式*/
public class Demo06StringPractice {
public static void main(String[] args) {
int[] array={1,2,3};
String result=fromArrayToString(array);
System.out.println(result);
}
public static String fromArrayToString(int[] array){
String str="[";
for (int i = 0; i < array.length; i++) {
if(i==array.length-1){
str+="word"+array[i]+"]";
}else{
str+="word"+array[i]+"#";
};
}
return str;
}
}
练习2 找出字符串中大写、小写、数字、其他符号、个数
import java.util.Scanner;
/*键盘输入一个字符串,统计其中大写字母 小写字母 数字 以及其他的个数*/
public class Demo07StringCount {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串");
String input=sc.next();
int countUpper=0;
int countLower=0;
int countNumber=0;
int countElse=0;
char[] chararray=input.toCharArray();//将字符串转换成字符串组
for (int i = 0; i < chararray.length; i++) {
char ch=chararray[i];
if(ch>='A'&&ch<='Z'){
countUpper++;
}else if(ch>='a'&&ch<='z'){
countLower++;
}else if(ch>='0'&&ch<='9'){
countNumber++;
}else{
countElse++;
}
}
System.out.println("大写数字个数为"+countUpper);
System.out.println("小写字母个数为"+countLower);
System.out.println("数字个数为"+countNumber);
System.out.println("其他字符个数为"+countElse);
}
}
8静态static关键字:1方法区中会有一个“静态区”,用于存放static变量(根据类名称访问静态变量时
过程中和所有对象都没关系,只和类有关系)
2static成员变量:写在类中的数据 不在属于各个对象,而是所有对象共享
3static成员方法:不属于变量,而属于类。可以通过类名称.方法名直接调用
4注意;静态方法不能访问非静态;静态方法中不能用this关键字
9静态代码块:1第一次使用类时 使用且只使用一次
2静态内容总是优先于非静态 所以静态代码快优先于构造方法执行
10Arrays API用法:1 Arrays.toString()将数组按照默认格式变为字符串
2 Arrays.sort():按升序对数组进行排序(数字,字母,汉字,类*)
*对类进行升序的话需要有comparable或comparator接口支持
练习3 将随机字符串正序排列之后倒序打印
import java.util.Arrays;
/*对一串随机字符串进行升序排列 并倒序打印*/
public class Demo09ArraysPractice {
public static void main(String[] args) {
String str="jAk21hsdfJK3K1saJHK";
char[] chars = str.toCharArray();
Arrays.sort(chars);
for (int i = chars.length - 1; i >= 0; i--) {
System.out.print(chars[i]);
}
}
}
11数学工具类Math:1Math.abs:绝对值 3Math.ceil向上取整 4Math.floor向下取整
4Math.round:四舍五入
练习4
/*计算-10.8到5.9之间绝对值大于6和小于2.1的整数有多少个*/
public class Demo10MathPractice {
public static void main(String[] args) {
double min=-10.8;
double max=5.9;
double min2=Math.ceil(min);
int count=0;
for(double i=min2;i<5.9;i++){
double zhengshuabs=Math.abs(i);
if (zhengshuabs>6||zhengshuabs<2.1){
count++;
}
System.out.println(zhengshuabs);
}
System.out.println("符合条件的整数有"+count+"个");
}
}