package test08;
public class Demo17_Practice_按照长度递减获取字符串 {
public static void main(String[] args) {
String str ="itcast";
printStringByLength(str);
}
public static void printStringByLength(String str) {
// TODO Auto-generated method stub
// 通过分析发现是一个for嵌套循环
for (int i = 0; i < str.length(); i++) {
for(int start = 0 , end = str.length()-i ; end <= str.length() ; start++ , end++ ){
// 根据start 以及 end截取字符
String arr =str.substring(start, end);
System.out.println(arr);
}
}
}
}
package test08;
public class Demo17_StringBuffer {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* StringBuffer
* 1.是一个字符串缓冲区,其实就是一个容器
* 2.长度是可变的,任意类型都行 注意:是将任意数据都转成字符串进行存储
* 3.容器对象提供了很多数据的操作功能 比如:增删改查
* 4.必须所有的数据最终变成了一个字符串
*
*
* 和数组之间的不同
*
* 数组存储完之后可以单独操作每一个元素,每一个元素都是独立的
* 字符串缓冲区,所有存储的元素被转成字符串,而且最后拼成了一个打的字符串
* */
//创建一个字符串缓冲对象,用于存储数据
// StringBuffer sb = new StringBuffer();
//// 添加数据
// sb.append(true);
// System.out.println(sb);
// int a =sb.capacity();
// System.out.println("a="+a);
// sb.insert(2, "false");//在1后添加
// System.out.println(sb);
// sb.replace(1, 4, "caa");//包含1不包含4
// System.out.println(sb);
int[] arr = {11,22,33,44,55};
String str = toString_2(arr);
System.out.println(str);
}
//缓冲区的应用: 无论多少数据,什么类型都不重要,只要最终变成字符串就可以使用这个容器
public static String toString_2(int[] arr) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
sb.append("[");// 将字符串表示形式追加到此序列。
//遍历数组
for(int i=0 ; i < arr.length ; i++){
if(i!=arr.length -1 ){
sb.append(arr[i]+",");}
else{
sb.append(arr[i]+"]");
}
}
return sb.toString();
}
}
/*StringBuffer:同步的,多线程访问安全
* StringBuilder:非同步的,单线程访问效率高
* 功能相同
* */