String Builder

案例:字符串反转

需求:定义一个方法,实现字符串反转,调用该方法后,在控制台输出结果

例如:键盘录入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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值