StringBuffer
构造方法
public StringBuffer() >默认初始化容量是16字符
public StringBuffer(int capacity) 设置初始化容量
public StringBuffer(String str) 初始化的容器为字符串的长度+16个字符
public int capacity()>表示获取当前StringBuffer 的初始化容量
常规的方法
添加:
public StringBuffer append(char c) ==>向末尾进行添加
代码:
public StringBuffer insert(int offset, boolean b) ==> 向StringBuffer 指定的位置来进行添加
删除:
public StringBuffer delete(int start,int end) 根据指定的范围来进行删除
开始的位置也是从0开始 包头不包尾
代码:
public StringBuffer deleteCharAt(int index) 根据索引来进行删除
代码:
public StringBuffer reverse() 控制反转
代码
其它的方法
public char charAt(int index) ==>根据索引来获取指定的字符
public int indexOf(String str) ==>根据字符来获取索引的位置 从前往后
public int lastIndexOf(String str) >根据字符来获取索引的位置 从后往前
public int length()> 获取长度
public StringBuffer replace(int start, int end,String str) ==>根据指定的区间来进行替换
public String substring(int start) ==>截取
public String toString() ==> 以字符串的形式进行返回
区别:
产生的版本的不一样
StringBuffer 在多线程多是安全的 StringBuilder 在多线程是不安全
效率低 效率高
String 与StringBuffer相互转换
String ==>StringBuffer
==>通过构造方法 new StringBuffer(字符串)
==> 通过调用StringBuffer 的方法 new StringBuffer().append()
StringBuffer ==>String
==> 通过构造方法
==> toString()
正则表达式
作业:
1.编写程序将 “jdk” 全部变为大写,并输出到屏幕,截取子串”DK” 并输出到屏幕
public static String play(String str){
return new StringBuffer(str).reverse().toString();
}
public class HomeWork1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str =input.next();
int start =input.nextInt();
int end=input.nextInt();
play(str,start,end);
}
public static void play(String str,int start,int end){
char[] ch=str.toCharArray();
String s="";
for (int i=0;i<ch.length;i++){
s+=(ch[i]+"").toUpperCase();
}
System.out.println(s);
System.out.println(s.substring(start,end));
}
}
2.写一个方法判断一个字符串是否对称
public class HomeWork2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str =input.next();
if (str.equals(HomeWork.play(str))){
System.out.println("对称");
}else{
System.out.println("不对称");
}
}
}
3.编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转:“To be or not to be",将变成"oT eb ro ton ot eb."。
public class HomeWork3 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str =input.nextLine();
System.out.println(pla(str));
}
public static String pla(String str){
String s="";
String [] strings=str.split(" ");
for (int i=0;i<strings.length;i++){
s+=HomeWork.play(strings[i])+" ";
}
return s;
}
}
4.String s=”name=zhangsan age=18 classNo=090728”;
将上面的字符串拆分,结果如下:zhangsan 18 090728
public class HomeWork4 {
public static void main(String[] args) {
String t="";
String s="name=zhangsan age=18 classNo=090728";
// String str="name=|age=|classNo=";
// String[] str1=s.split(str);
// for (int i=0;i<str1.length;i++){
// t+=str1[i]+" ";
// }
String[] str1=s.split(" ");
for (int i=0;i<str1.length;i++){
t+=str1[i].substring(str1[i].indexOf("=")+1)+" ";
}
System.out.println(t);
}
}
5.使用两种方法把这个字符串中的单词首字母转为大写:
String str = “hello Java and Android!”
public class HomeWork5 {
public static void main(String[] args) {
String s = "hello Java and Android";
String[] str1 = s.split(" ");
//play1(str1);
play2(str1);
}
public static void play1(String[] str1) {
String t = "";
for (int i = 0; i < str1.length; i++) {
char[] ch = str1[i].toCharArray();
if (ch[0]>='a'&&ch[0]<='z'){
str1[i] = "";
for (int j = 0; j < ch.length; j++) {
if(j==0){
str1[i] += (ch[0] + "").toUpperCase();
}else {
str1[i] += (ch[j] + "");
}
}
}
t += str1[i] + " ";
}
System.out.println(t);
}
public static void play2(String[] str1) {
String t = "";
for (int i = 0; i < str1.length; i++) {
if (str1[i].charAt(0)>='a'&&(str1[i].charAt(0)<='z')){
str1[i]=str1[i].replace((str1[i].charAt(0)+""),(str1[i].charAt(0)+"").toUpperCase());
}
t+=str1[i]+" ";
}
System.out.println(t);
}
}
6.编程. 已知字符串:“this is a test of java”.
按要求执行以下操作:
(1) 统计该字符串中字母s出现的次数
(2) 取出子字符串"test"
(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
(4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
public class HomeWoek6 {
public static void main(String[] args) {
String s="this is a test of java";
// playy1(s);
// playy2(s);
//playy3(s);
//playy4(s);
playy5(s);
}
public static void playy1(String s){
int t=0;
char[] ch =s.toCharArray();
for (int i=0;i<ch.length;i++){
if (ch[i]=='s'){
t++;
}
}
System.out.println(t);
}
public static void playy2(String s){
String y="";
String[] str =s.split(" ");
for (int i=0;i<str.length;i++){
if (str[i].equals("test")){
y+=str[i];
}
}
System.out.println(y);
}
public static void playy3(String s){
char[] str=s.toCharArray();
}
public static void playy4(String s){
String[] str1=s.split(" ");
String t = "";
for (int i = 0; i < str1.length; i++) {
if (str1[i].charAt(0)>='a'&&(str1[i].charAt(0)<='z')){
str1[i]=str1[i].replace((str1[i].charAt(0)+""),(str1[i].charAt(0)+"").toUpperCase());
}
t+=str1[i]+" ";
}
System.out.println(t);
}
public static void playy5(String s){
String y="";
char[] str=s.toCharArray();
for (int i = str.length-1; i >=0; i--){
y+=str[i]+"";
}
System.out.println(y);
}
public static void playy6(String s){
System.out.println(new StringBuffer(s).reverse().toString());
}
}