文章目录
遍历字符串
需求:键盘输入一个字符串,使用程序实现在遍历控制台·
思路:
键盘输入一个数据;Scanner
获取每一个字符:public char charAt(index):返回值指定索引char值,字符串索引也是从0开始的
遍历字符串,其次要回去字符串长度
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String s1 = sc.nextLine();
//System.out.println("length:"+s1.length());
// System.out.println(s1.charAt(0));
// System.out.println(s1.charAt(1));
// System.out.println(s1.charAt(2));
for (int i = 0; i < s1.length(); i++) {
System.out.println(s1.charAt(i));
}
}
}
统计字符次数
- 键盘(Scanner)输入一个数据
- 定义三个变量,初始值都为0
- 遍历字符串,得到每一个字符
- 判断属于哪一种类型,然后对应类型+1
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String s1 = sc.nextLine();
int sd1 = 0;
int sd2 = 0;
int sd3 = 0;
for (int i = 0; i < s1.length(); i++) {
char ch = s1.charAt(i);
if(ch>='A'&&ch<='Z') {
sd1++;
}else if (ch>='a'&&ch<='z') {
sd2++;
}else if (ch>'0'&&ch<'9'){
sd3++;
}
}
System.out.println("大写字母:"+sd1+","+"小写字母:"+sd2+","+"数字:"+sd3);
}
}
拼接字符串
需求:定义一个方法,吧int数组中的数据按照格式拼接成一个字符串返回,调用该方法,并且在控制台输出
思路
- 定义一个数组
- 定义一个方法,返回值String
- 遍历数组在方法中
- 调用方法
- 输出结果
public class Application {
public static void main(String[] args) {
int[] arr = {1,5,1,56,5,1,4,};
System.out.println(arrayToString(arr));
}public static String arrayToString(int[] arr){
String s = "";
s += "[";
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
s+=arr[i]+"]";
}else {
s+=arr[i]+",";
}
}
return s;
}
}
字符串反转
需求:如:输入abc,输出cba,实现反转
思路:
- 输入一个字符串(Scanner)
- 定义一个方法,实现反转,返回值String,参数String s
- 倒着遍历字符串,然后拼接
- 调用方法
- 输出
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String s1 = sc.nextLine();
System.out.println(reverse(s1));
}public static String reverse(String s ){
String ss = "";
for (int i = s.length()-1; i >0 ; i--) {
ss +=s.charAt(i);
}
return ss;
}
}
通过帮助文档查看String中的方法
方法名 | 说明 |
---|---|
public boolean equals(Object anObject) | 比较字符串的内容,严格区分大小写(用户名和密码) |
public char charAt(int index) | 返回指定索引处char值 |
public int length() | 返回此字符串长度 |
StringBuilder
- 进行字符拼接 ,占用堆内存栈内存较小
- StringBuilder 和String的区别
- String:内容是不可变的
- StringBuilde:内容是可变的
StringBuilder构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符对象,不包含任何内容 |
public StringBuilder(String str) | 根据字符串内容,来创建可变字符串对象 |
import sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
System.out.println("sc:"+sc);
System.out.println("sc:"+sc.length());
StringBuilder sc1 = new StringBuilder("Hello");
System.out.println("sc1:"+sc1);
System.out.println("sc1:"+sc1.length());
}
}
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder() | 返回相反的字符串 |
public String toString() | 通过toString就可以实现把StringBuilder转换为String |
import sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
StringBuilder sc1 = sc.append("hello");
sc.append(12324);
sc.append("cecec");
sc.append('c');
sc.append(232);
System.out.println("sc: "+sc);
System.out.println("sc1: "+sc1);
System.out.println(sc==sc1);
}
}
import sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
sc= sc.append("Hello").append("大家好").append("3").append('A');
System.out.println(sc);
System.out.println(sc.reverse());
}
}
StringBuilder和String相互转换
-
StringBuilder转换为String
public String toString():通过toString()就可以实现把StringBuilder转换为String
-
String 转换为StirngBuilder
public StringBuilder(String s) :通过构造后方法就可以实现把String 转换为StringBuilder
mport sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
String s = "Hello";
s.toString();
StringBuilder s1 = new StringBuilder(s);
System.out.println(s);
System.out.println(s1);
}
}
StringBuilder改进字符拼接
import sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
int[] arr = {1,5,1,4,5,1,};
String s =arrayToSting(arr);
System.out.println(s);
}public static String arrayToSting(int[] arr){
StringBuilder sc = new StringBuilder();
sc.append("[");
for (int i = 0; i <arr.length ; i++) {
if(i==arr.length-1){
sc.append(arr[i]+"]");
}else{
sc.append(arr[i]+",");
}
}
String s = sc.toString();
return s ;
}
}
字符串反转升级版
需求:如:输入abc,输出cba,实现反转
思路:
- 输入一个字符串(Scanner)
- 定义一个方法,实现反转,返回值String,参数String s
- 在方法中使用StringBuilder实现字符串反转,并把结果转换成Sstring返回
- 调用方法
- 输出
import sun.awt.geom.AreaOp;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
String s = myReverse(s1);
System.out.println(s);
}public static String myReverse(String s){
StringBuilder s2 = new StringBuilder(s);
s2.reverse();
String s3 = s2.toString() ;
return s3;
// return new StringBuilder(s).reverse().toString();
}
}