Day8
API (java说明书)
String类
构造方法1.空参数构造法 2.参数是字节数组 3.参数是字符数组
双引号直接写:使用双引号创建的字符串对象,在常量池中,同一个字符串对象,在常量池中仅会存在一份.
比较方法:equals严格比较;equalsIgnoreCase 忽略大小写比较
便利字符串的方法:1: length() 获取字符串长度 2: charAt(索引) 获取指定索引处的字符
1:使用双引号创建出来的字符串对象是常量,可以被多个变量共享使用;2:字符串中所有的方法,都不会改变原字符串的值,方法执行后会得到一个新的字符串对象;
StringBuilder类:代表字符串缓冲区
作用:用于拼接字符串的时候,提升程序的性能,减少字符串拼接过程中产生的字符串常量垃圾;
构造方法 :1.空参数构造方法 2.带字符参数的构造方法
1:append(任意数据) 2.toString() 将魂虫去变成字符串 3.reverse() 反转内容.
String与StringBuilder的转变1:使用StringBuilder的toString方法,可以将字符串缓冲区转成字符串对象;2:使用StringBuilder的构造方法,可以将字符串对象转成字符串缓冲区对象;
String与StringBuilder的区别:1:字符串内容不可改变;2:字符串缓冲区内容可以改变;
eg.1
1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成'~'
6.打印数组元素的内容
import java.util.Scanner;
public class StringToArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
char[] ch = new char[line.length()];
//将该字符串变成字符数组(不能使用toCharArray()方法)
StringToArray(line, ch);
//打印数组
printArray(ch);
//将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
HighToLower(ch);
//打印数组
printArray(ch);
//如果第一位和最后一位的内容不相同,则交换
changeArray(ch);
//打印数组
printArray(ch);
//将字符数组中索引为偶数的元素变成'~'
changeDouble(ch);
//打印数组
printArray(ch);
}
public static void StringToArray(String line, char[] ch) {
for (int i = 0; i < line.length(); i++) {
ch[i] = line.charAt(i);
}
}
public static void HighToLower(char[] ch) {
for (int i = 0; i < ch.length; i++) {
//首先判断是不是大写字母
//将字符转成对应的数字
int a = (int) ch[i];
if (a >= 65 && a <= 90) {
//转换成小写字母对应的数字
a = a + 32;
//把数字转换成小写字母并存入数组
ch[i] = (char) a;
} else {
//不是大写字母
continue;
}
}
}
public static void changeArray(char[] ch) {
//如果最后一个元素和第一个不相同,就交换
if (ch[0] != ch[ch.length - 1]) {
char temp = ch[0];
ch[0] = ch[ch.length - 1];
ch[ch.length - 1] = temp;
}
}
public static void changeDouble(char[] ch) {
//遍历数组,判读偶数位,将偶数位置元素更换为~
for (int i = 0; i < ch.length; i++) {
if (i % 2 == 0) {
ch[i] = '~';
}
}
}
public static void printArray(char[] ch) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < ch.length; i++) {
if (i == ch.length - 1) {
sb.append(ch[i]);
} else {
sb.append(ch[i] + ", ");
}
}
sb.append("]");
System.out.println(sb.toString());
}
}
eg.2
1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结果
import java.util.Random;
public class randomStr {
public static void main(String[] args) {
//调用方法
String str = getStr();
//输出
System.out.println(str);
}
public static String getStr() {
//构造StringBuilder对象
StringBuilder sb = new StringBuilder();
Random r = new Random();
while (true) {
if (sb.length() == 5) {
//控制字符串长度为5
break;
} else {
//随机生成65-122的随机数
int a = r.nextInt(58) + 65;
//判断生成的随机数在不在大写和小写字母范围内
if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
//将数字转换成相应的字母
char cc = (char) a;
//然后将字符添加到sb中
sb.append(cc);
} else {
continue;
}
}
}
String s = sb.toString();
return s;
}
}