java实验五——字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法
package hello;
import java.util.Scanner;
public class 实验五 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char cc[]={'a','b','c','d','e','f'};
//将字符串数组转成string
String s1 =String.copyValueOf(cc);
System.out.println(s1);
//将string转成StringBuffer
StringBuffer s2 = new StringBuffer(s1);
//在1这个位置插入z
s2.insert(1, 'z');
System.out.println(s2);
//把第0个位置换成x
s2.replace(0, 1, "x");
System.out.println(s2);
//将StringBuffer转成String
String s3 = s2.toString();
System.out.println(s3.toUpperCase());
}
}
1. String和StringBuffer的相互转化:
String s1 ="cjs_hhh";
System.out.println("String "+s1);
//将string转成StringBuffer
StringBuffer s2 = new StringBuffer(s1);
System.out.println("StringBuffer "+s1);
//将StringBuffer转成String
String s3 = s2.toString();
System.out.println("String "+s3);
2. 字符数组和String的相互转化:
char cc[]={'a','b','c','d','e','f'};
//将字符串数组转成string
String s1 =String.copyValueOf(cc);
System.out.println("String "+s1);
//将string转成字符串数组
char c[]=s1.toCharArray();
for(int i=0;i<c.length;i++)
{
System.out.print(c[i]);
}
3. 字符数组和StringBuffer的相互转化:
1、将StringBuffer转换成字符数组
在Java中不支持直接从StringBuffer转换成字符数组。而是先将StringBuffer转换成String,
然后由String调用toCharArray函数转换成字符数组。
StringBuffer stringBuffer = new StringBuffer(“Hello World.”);
String str = stringBuffer.toString();// 先将StringBuffer对象转换成String对象
char[] ch = str.toCharArray();// 再调用String对象的toCharArray函数转换成字符数组
2、将字符数组转换成StringBuffer
与将StringBuffer转换成字符数组类似,需要先将字符数组转换成String,然后再由String转换成StringBuffer。
char[] data = {'H', 'e', 'l','l', 'o', 'd'};
String str = new String();//或者直接调用构造方法:String str = new String(data);
str = String.valueOf(data);//调用String类的valueOf函数将字符数组转换成String
StringBuffer buffer = new StringBuffer();
buffer = buffer.append(str);//调用append函数将String转换成Stringbuffer
4.StringBuffer的一些方法
StringBuffer是字符串缓冲区,是一个容器。
1、长度是可变化的;(数组长度不变)
2、可以操作多个数据类型;
3、最终会通过toString方法变成字符串。
1、添加。
StringBuffer append(); //将指定数据作为参数添加到已有数据结尾处
StringBuffer insert(index,数据); //可以将数据插入到指定index位置
2、删除。
StringBuffer delete(start,end); //删除缓冲区中的数据,包含start,不包含end
StringBuffer deleteCharAt(index); //删除指定位置的字符
3、修改。
StringBuffer replace(start,end,string); //用string字符串替换原有字符串中的数据,包含start,不包含end
void setCharAt(int index,char ch); //用ch字符替换指定位置的字符(注意:void没有返回值)
4、获取。
char charAt(int index); //根据角标获取
int indexOf(String str); //根据字符串获取位置
int lastIndexOf(String str); //如果出现字符串参数一次或多次,则返回最后一个这样的字符串的第一个字符的索引返回
int length(); //获取长度
String substring(int start,int end); //获取子字符串,包含start,不包含end(注意:访问的是String,不是StringBuffer)
5、反转。
StringBuffer reverse(); //返回StringBuffer对象的颠倒顺序
6、将缓冲区中指定数据存储到指定数组中。
void getChars(int scrBegin,int scrEnd,char[] dst,int dstBegin); //scrBegin(源开始位),dstBegin(目标开始位)