案例:字符串反转
需求:定义一个方法,实现字符串反转,调用该方法后,在控制台输出结果
例如:键盘录入abc,输出结果cba
package chapter4;
import java.util.Scanner;
public class StringTest05 {
public static void main(String[] args){
//键盘录入一个字符串,用Scanner实现
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line=sc.nextLine();
//调用方法
String s=reverse(line);
//输出结果
System.out.println("s:"+s);
}
/*定义一个方法
* 两个明确
* 返回值类型:String
* 参数:String 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
charAt(int index)接收一个索引
返回指定索引处的char值
StringBuilder : 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder 对象中的内容是可变的。
String内容不可变
public StringBuilder()
创建一个空白可变字符对象,不含有任何内容
public StringBuilder(String s)
根据字符串的内容,来创建可变字符串对象
package chapter5;
public class StringBuilderDemo01 {
public static void main(String [] args){
//public StringBuilder();创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb=new StringBuilder();
System.out.println("sb:"+sb);
//StringBuilder(String str);
StringBuilder sb2=new StringBuilder("hello");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+sb2.length());
}
}
sb:
sb2:hello
sb2.length():5
添加和反转
package chapter5;
public class StringBuilderDemo01 {
public static void main(String [] args){
//public StringBuilder();创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb=new StringBuilder();
//public StringBuilder append(任意类型:添加数据,并返回对象本身)
StringBuilder sb2=sb.append("hello");
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb);
System.out.println(sb==sb2);
}
}
sb:hello
sb2:hello
true
package chapter5;
public class StringBuilderDemo01 {
public static void main(String [] args){
//public StringBuilder();创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb=new StringBuilder();
//public StringBuilder append(任意类型:添加数据,并返回对象本身)
StringBuilder sb2=sb.append("hello");
/*
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb);
System.out.println(sb==sb2);
*/
sb.append("hello");
sb.append("world");
sb.append("java");
sb.append(100);
// System.out.println("sb:"+sb);
//链式编程
sb.append("hello").append("world").append("java").append(100);
System.out.println("sb:"+sb);
}
}
sb:hellohelloworldjava100
//public StringBuilder reverse(),返回相反的字符序列
sb.reverse();
System.out.println("sb:"+sb);
sb:hellohelloworldjava100
sb:001avajdlrowolleholleh
StringBuilder 和String 相互转换
1. StringBuilder 转换为String
public String toString(): 通过toString()就可以实现把StringBuilder转换为String
2.String转换为StringBuilder
public StringBuilder(String s): 通过构造方法就可以实现把String转换为StringBuilder
package chapter5;
public class StringBuilderDemo02 {
public static void main(String[] args){
/*
* StringBuilder 转换为String
*/
// StringBuilder sb=new StringBuilder();
// sb.append("hello");
//String s=sb;//这个是错误的做法
//public String toString();
//String s=sb.toString();
// System.out.println(s);
//String转换为StringBuilder
String s="hello";
//StringBuilder sb=s;//这是个错误的做法
//public StringBuilder(String s):
StringBuilder sb=new StringBuilder(s);
System.out.println(sb);
}
}
hello
案例:定义一个方法,把int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int[ ]arr = (1,2,3);,执行方法后的输出结果为:[1,2,3]
package chapter5;
public class StringBuilderDemo02 {
public static void main(String[] args){
int []arr={1,2,3};
//调用方法,用一个变量接收结果
String s=arrayToString(arr);
System.out.println("s:"+s);
}
//定义一个方法:返回值类型 String ,参数:int[]arr
public static String arrayToString(int [] arr){
//在方法中用StringBuilder按照要求进行拼接,并把结果转成String返回
StringBuilder sb=new StringBuilder();
sb.append("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
sb.append(arr[i]);
}else{
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s=sb.toString();
return s;
}
}
s:[1,2,3]
案例:字符串反转
需求:定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果例如,键盘录入abc,输出结果cba
package chapter5;
import java.util.Scanner;
public class StringBuilderDemo02 {
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);
}
/*定义一个方法,实现字符串反转
* 返回值类型String
* 参数String s
*/
public static String reverse(String s){
StringBuilder sb=new StringBuilder(s);
String ss=sb.reverse().toString();
return ss;
/*
* StringBuilder sb=new StringBuilder(s);
* sb.reverse();
* String ss=sb.toString;
* return ss;
*/
//return new StringBuilder(s).reverse().toString();
}
}
请输入一个字符串
abc
s:cba