StringBuffer和String区别,转换

来源:互联网 发布:c语言的特点 编辑:程序博客网 时间:2024/05/15 09:39

1

要求:.输入 abc   输出 cba

public class DaoXu {public static void main(String[] args) {System.out.println("请输入一个字符串");Scanner sc = new Scanner(System.in);String  s = sc.nextLine();String dao = "";char[] chs = s.toCharArray();//将字符串转换为字符串数组for(int x = chs.length-1;x>=0;x--){dao+=chs[x];}System.out.println(dao);////for(int x = s.length()-1; x>=0;x--){//分别取出字符串中每个字符//char c = s.charAt(x);//dao = dao+c;////}



2.

要求:统计woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun中有多少个jiva

public class Tongji {public static void main(String[] args) {String s  = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";String tong = "java";int count = 0;for(int x = 0;x<s.length()-5;x++){String jiequ = s.substring(x, x+4);//每次都截取四个 与java进行比较if(jiequ.equals(tong)){count=count+1;}}System.out.println(count);}}


3.StringBuffer和String区别
   3.1 StringBuffer:线程安全的可变字符序列
   3.2 String和StringBuffer(线程安全,效率低),StringBulider(线程不安全的:效率高!)的区别?
  共同点:都是字符串类型
  不同点:后者来说,在内存中会构造一个字符串缓冲区,是一个可变的字符序列,:String:一旦被赋值,
                 其值不能再改变,并且不可变的字符序列
  
   3.3 StringBuffer的构造方法:
  public StringBuffer() :构造一个字符串缓冲区,构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
public StringBuffer(int capacity):构造一个字符串缓冲区,指定容量
public StringBuffer(String str):将str字符串创建到字符串缓冲区中:str+16
         获取的方法:
    public int length():获取字符串长度
  public int capacity():获取字符串缓冲区的容量大小
   3.4  添加功能
public StringBuffer append(String str):表示在字符串缓冲追加,返回字符串缓冲区本身
public StringBuffer insert(int offset,String str):在指定位置插入str这个字符串,返回缓冲区本身


public class SreingB {public static void main(String[] args) {StringBuffer sb = new  StringBuffer();//public StringBuffer append(String str):表示在字符串缓冲追加,返回字符串缓冲区本身sb.append(true);sb.append('s');sb.append(2);System.out.println(sb);//trues2//public StringBuffer insert(int offset,String str):在指定位置插入str这个字符串,返回缓冲区本身sb.insert(3, "ppp");System.out.println(sb);//trupppes2}}

3.5转换

public class Demo1 {public static void main(String[] args) {//String转换成StrinBufferString s = "Hello";//方式一:通过StringBuffer的 构造方法StringBuffer sb = new StringBuffer(s);//方式二:通过无参构造创建字符串缓冲区对象,然后用append方法添加StringBuffer sb2 = new StringBuffer();sb2.append(s);//StringBuffer向String转换StringBuffer sb3 = new StringBuffer("Hello");//方式一:String类中的构造方法可以传入一个缓冲区对象String s1 = new String(sb3);//方式二:StringBuffer中的特有功能:toString();可以将数据转换成一个字符串类型String s2 = sb3.toString();}

}


4.
Integer:多用于int转换String
public static void main(String[] args) {//int转换成Stringint i = 100;//方式一:字符串拼接String s = ""+i;//方式二:int——>Integer--->StringInteger ii = new Integer(i);String s2 = ii.toString();//返回一个表示该 Integer 值的 String 对象//方式三:public static String toString(int i)返回一个表示指定整数的 String 对象String s3 = Integer.toString(i);}


5.

要求:字符串反转

import java.util.Scanner;//字符串反转public class Demo2 {public static void main(String[] args) {Scanner sc  = new Scanner(System.in);String line = sc.nextLine();String s =fanzhuan(line);System.out.println(s);}//使用String类型进行拼接public static String fanzhuan(String s){String s1 ="";for(int x = s.length()-1; x>=0;x--){char c =s.charAt(x);//获取指定索引处的字符s1 = s1+c;}char ch[] = s.toCharArray();//将字符串类型转换成字符数组 再倒着遍历return s1;}//StringBuffer的反转功能public static String fanzhuan2(String s){StringBuffer sb = new StringBuffer(s);sb.reverse();return sb.toString();//StringBuffer转换成String类型}







}