首先用案例对昨天的内容进行总结
需求:键盘录入一个字符串,使用程序实现在控制台遍历字符串
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String line = sc.nextLine();
//其中line.length()可以读取字符串长度
for (int i = 0; i < line.length(); i++) {
//利用line.charAt()输出
System.out.println(line.charAt(i));
}
}
}
需求:键盘录入一个字符串,统计该字符串中大写字母字符,小写字符字符,数字字符出现的次数(不考虑其他字符)
思路:判断大写>='A' && <='Z'; 小写 >='a' && <='z'; 数字 >='0' && <='9';
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String line = sc.nextLine();
//定义三个统计变量,初始值为0
int big = 0;
int small = 0;
int count = 0;
//用循环进行遍历
for (int i = 0; i < line.length(); i++) {
char n = line.charAt(i);
//判断是否为大写字符
if (n >= 'A' && n <= 'Z') {
big++;
}
//判断是否为小写字符
else if (n >= 'a' && n <= 'z') {
small++;
}
//判断是否为数字
else if (n >= '0' && n <= '9') {
count++;
}
}
System.out.println("你输入的字符串有" + big + "个大写字母");
System.out.println("你输入的字符串有" + small + "个小写字母");
System.out.println("你输入的字符串有" + count + "个数字");
}
}
需求:定义一个方法,把int数组的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果,例如,数组为int[] arr={1,2,3};,执行方法后输出的结果为[1,2,3]
public class TestDemo {
public static void main(String[] args) {
//定义一个静态数组
int[] arr = {1, 2, 3};
//调用方法
String s = Pick(arr);
//输出结果
System.out.println("s:" + s);
}
public static String Pick(int[] arr) {
//在方法中遍历数组,按照要求进行拼接
String s = "";
//s+就相当于拼接
s += "[";
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
s += arr[i];
} else {
s += arr[i];
s += ",";
}
}
s += "]";
return s;
}
}
//输出结果
//s:[1,2,3]
需求:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如:键盘输入abc,输出结果cba
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
//用键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
//调用函数
String s = reverse(line);
System.out.println("s:" + s);
}
//在方法中吧字符串倒着遍历
public static String reverse(String s) {
String ss = "";
for (int i = s.length() - 1; i >= 0; i--) {
//拼接字符串
ss += s.charAt(i);
}
return ss;
}
}
/*
请输入一个字符串:
abc
s:cba
*/
通过帮助文档查看String中的用法
方法名 | 说明 |
---|---|
public boolean equals(Object anObject) | 比较字符串的内容,严格区分大小写(用户名和密码) |
public char charAt(int index) | 返回指定索引处的char值 |
public int length() | 返回此字符串的长度 |
StringBuilder概述
StringBuilder是一个可变的字符串类,我们可以把他看成是一个容器,这里的可变值的是StringBuilder对象中的内容是可变的
String:内容是不可变得
StringBuilder:内容是可变的
StringBuilder的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 常见一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
public class TestDemo {
public static void main(String[] args) {
//创建一个空白的字符串对象
StringBuilder sb = new StringBuilder();
System.out.println("sb:" + sb);
//输出它的长度
System.out.println("sb2.length:" + sb.length());
//根据字符串的内容创建
StringBuilder sb2 = new StringBuilder("Hello");
System.out.println("sb2:" + sb2);
System.out.println("sb2.length:" + sb2.length());
}
}
/*
输出结果
sb:
sb2.length:0
sb2:Hello
sb2.length:5
*/
StringBuilder的添加和反转方法
方法名 | |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
public class TestDemo {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder();
/*sb.append("Hello");
sb.append("world");
sb.append("java");
sb.append(100);*/
//链式编程,结果和上面注释掉的一样
sb.append("Hello").append("world").append("java").append(100);
System.out.println("sb:"+sb);
//反转
sb.reverse();
System.out.println("sb:"+sb);
}
}
/*
输出结果
sb:Helloworldjava100
sb:001avajdlrowolleH
*/
StringBuilder和String相互转换
1.StringBuilder转换为String
public String toString():通过toString()就可以实现把StringBuilder转换为String
2.String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder