API
jdk中提供的一组Java类和接口的统称。需要我们学会查api文档
查文档的方式:
1、查看类在哪个包以及类的相关简介。
2、查看有哪些构造方法用于创建对象。
3、查看常见的成员方法以及成员方法的返回值
String类:字符串
-
构造方法(创建对象)
String(char[] chs); // 创建对象时,传入字符数组
String(byte[] bts); // 创建对象时,传入字节数组
常用:
String s="abc";
-
成员方法(查文档)
1、比较的方法:equals、equalsIgnoreCase
== :基本数据类型比较值,引用数据类型比较地址值。
比较字符串的值使用字符串的equals(String s)方法。
equals(String s):不忽略大小写比较。
equalsIgnoreCase(String s):忽略大小写比较 。
public class StringDemo1 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = "ABC";
String s4 = "AbC";
System.out.println(s1 == s2); // true
System.out.println(s1 == s3); // false
System.out.println(s1 == s4); // false
System.out.println("===========");
System.out.println(s1.equals(s2)); // true
System.out.println(s1.equals(s3)); // false
System.out.println(s1.equals(s4)); // false
System.out.println("===========");
System.out.println(s1.equalsIgnoreCase(s2)); // true
System.out.println(s1.equalsIgnoreCase(s3)); // true
System.out.println(s1.equalsIgnoreCase(s4)); // true
}
}
2、遍历字符串:
考查知识点:获取字符串的长度以及根据索引获取字符
`int length() // 返回字符串的长度`
` char charAt(int index) // 返回在字符串指定索引的字符`
import java.util.Scanner;
/*
遍历字符串
length():返回一个字符串的长度
charAt():返回一个字符串指定位置的字符(char)
*/
public class StringDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
for (int i = 0; i < line.length(); i++) {
System.out.println(line.charAt(i));
}
}
}
3、统计大写字母、小写字母、数字的个数
考查的知识点:获取字符串的长度以及根据索引获取字符
难点:如何判断字符是大写字母、小写字母、数字?
if('A'<=ch && ch<='Z'){ // 判读大写字母
bigCount++;
}else if('a'<=ch && ch<='z'){ // 判断小写字母
smallCount++
}else if('0'<=ch && ch<='9'){ // 判断数字
numberCount++
}
import java.util.Scanner;
public class StringDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
int bigCount = 0; // 大写字母
int smallCount = 0; // 小写字母
int numberCount = 0; // 数字
int otherCount = 0; // 其他
for (int i = 0; i < line.length(); i++) {
char ch = line.charAt(i);
if (ch>='A' && ch<='Z') {
bigCount++;
} else if (ch>='a' && ch<='z') {
smallCount++;
} else if (ch>='0' && ch<='9') {
numberCount++;
} else {
otherCount++;
}
}
System.out.println("bigCount = " + bigCount);
System.out.println("smallCount = " + smallCount);
System.out.println("numberCount = " + numberCount);
System.out.println("otherCount = " + otherCount);
}
}
4、拼接字符串:
考查知识点:1、字符串遍历。2、字符串+或者+=任何数都是字符串。
public class StringDemo5 {
public static void main(String[] args) {
// 定义一个数组
int[] arr = {12, 34, 56, 78, 98, 76, 54, 32};
// 调用方法,以指定的方式打印数组
String s = arrayToString(arr);
System.out.println("s = " + s);
for (int i = 0; i < s.length(); i++) {
System.out.print(s.charAt(i));
}
}
/*
以指定方式打印数组
返回值类型:String s
参数:int[] arr
*/
public static String arrayToString(int[] arr) {
String s = "[";
for (int i = 0; i < arr.length; i++) {
if (arr.length-1 == i) {
// 最后一个元素
s += arr[i] + "]";
} else {
// 不是最后一个元素
s += arr[i] + ", ";
}
}
return s;
}
}
5、总结:
equals(String s):不忽略大小写比较
equalsIgnoreCase(String s):忽略大小写比较
int length():获取字符串的长度
char charAt(int index):根据字符串指定索引处的字符
boolean contains(String s):判断字符串是否包含给定字符串s,如果包含返回值就为true,反之为false。
boolean endsWith(String suffix):判断字符串是否以给定的suffix结尾
boolean startsWith(String prefix):判断字符串是否以给定的prefix开头
int indexOf(String str):返回指定子字符串第一次出现的字符串内的索引。
StringBuilder类:可变的字符串
-
构造方法:创建对象
-
StringBuilder()
创建一个没有任何内容StringBuilder对象,缓冲区初始容量为16个字符。 -
StringBuilder(String str)
创建一个StringBuilder对象并指定初始化内容 -
例如:
`StringBuilder sb=new StringBuilder("hello");`
-
-
成员方法:查文档
-
StringBuilder append(任意类型 str):在原来的字符串后面追加(拼接)一个给定的字符串,返回值为原来的StringBuilder对象。
` sb.append("hello").append("world");//链式编程`
-
public class StringBuilderDmeo1 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
//sb.append("Hello");
//sb.append("World");
//sb.append(100);
//sb.append("JavaSE");
// 链式编程
// 字符串追加
sb.append("Hello").append("World").append(100).append("JavaSE");
System.out.println("sb = " + sb);
// 字符串反转
sb.reverse();
System.out.println("sb = " + sb);
}
}
-
StringBuilder reverse():StringBuilder中的字符串反转,返回值还是一个StringBuilder对象。
`sb.reverse();`
import java.util.Scanner;
public class StringBuilderDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
String s = resverse(line);
System.out.println("s = " + s);
}
// 定义方法
public static String resverse(String s) {
StringBuilder sb = new StringBuilder(s);
return sb.reverse().toString();
}
}
- String toString():将StringBuilder转化成String对象。
/*
append(): 向原字符串后面追加指定字符串,返回原来的对象
toString(): 把StringBuilder对象转化为String对象
StringBuilder(String s): 把String对象转化为StringBuilder对象
*/
public class StringBuilderDemo2 {
public static void main(String[] args) {
// 定义一个数组
int[] arr = {12, 34, 56, 78, 45};
//调用方法
String s = arrayToString(arr);
// 打印结果
System.out.println("s = " + s);
}
// 定义方法
public static String arrayToString(int[] arr) {
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < arr.length; i++) {
if (arr.length-1 == i) {
sb.append(arr[i]).append("]");
} else {
sb.append(arr[i]).append(", ");
}
}
return sb.toString();
}
}