StringBuffer替换功能 public StringBuffer replace(int start,int end,String str) 用指定的String中的字符替换此序列的子字符串中的String 。 子串开始于指定start并延伸到字符索引end - 1 ,或如果没有这样的字符存在的序列的结束。 第一子串中的字符被去除,然后指定String被插入在start .
public class StringBufferDemo4 { public static void main(String[] args) { //创建一个StringBuffer对象 StringBuffer sb = new StringBuffer(); //往StringBuffer中添加一些内容 sb.append("java").append("mysql").append("hadoop").append("hive").append("spark").append("flink"); System.out.println(sb); //public StringBuffer replace(int start,int end,String str) sb.replace(4,10,"我一定能学会"); System.out.println(sb); } }
StringBuffer的反转功能 public StringBuffer reverse() 导致该字符序列被序列的相反代替。 如果序列中包含任何替代对,则将它们视为单个字符进行反向 *** 作public class StringBufferDemo5 { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("我爱你中国"); System.out.println("反转之前:" + sb); System.out.println("反转之后:"); StringBuffer sb2 = sb.reverse(); // *** 作的是同一个StringBuffer对象 System.out.println(sb); System.out.println(sb2); } }
StringBuffer的截取功能 public String substring(int start) 返回一个新的String ,其中包含此字符序列中当前包含的字符的子序列。 public String substring(int start,int end) 返回一个新的String ,其中包含此序列中当前包含的字符的子序列。 子串起始于指定的start ,并扩展到索引号为end - 1 。public class StringBufferDemo6 { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("java") .append("mysql") .append("hive") .append("ETL") .append("spark"); System.out.println(sb);//javamysqlhiveETLspark //public String substring(int start) //不会改变原来StringBuffer中的数据 //返回值是一个String类型的数据 String s1 = sb.substring(4); System.out.println("截取的内容是:"+s1);//mysqlhiveETLspark System.out.println("StringBuffer的内容为:"+sb); //public String substring(int start,int end) 含头不含尾 [start,end) //javamysqlhiveETLspark String s2 = sb.substring(9, 13); System.out.println("截取的内容是:"+s2); //hiveE--h为第九个元素E为第13个元素含头不含尾====hive System.out.println("StringBuffer的内容为:"+sb);//javamysqlhiveETLspark } }
为什么要进行相互转换? A-->B,将A转换成B,是为了使用B中的特有功能 B-->A,再将B转换成A,可能是引用最终的结果需要的是A类型的数据,所以还得转换回来 String与StringBuffer之间的转换。public class StringBufferDemo7 { public static void main(String[] args) { //String --> StringBuffer String s = "hello"; // StringBuffer sb = s; //java: 不兼容的类型: java.lang.String无法转换为java.lang.StringBuffer // StringBuffer sb = "hello"; //方式1:通过构造方法转换 StringBuffer sb1 = new StringBuffer(s); System.out.println(s); System.out.println(sb1); //方式2:通过append() StringBuffer sb2 = new StringBuffer(); sb2.append(s); System.out.println(s); System.out.println(sb2); System.out.println("=============================================="); //StringBuffer --> String StringBuffer sb3 = new StringBuffer("bigdata"); //方式1:toString()方法 String s1 = sb3.toString(); System.out.println(sb3); System.out.println(s1); //方式2:subString String s2 = sb3.substring(0); System.out.println(s2); System.out.println(sb3); //方式3:String类的构造方法 //String(StringBuffer buffer) //分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。 String s3 = new String(sb3); System.out.println(s3); System.out.println(sb3); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)