1、StringBuffer对象的初始化
通常情况下一般使用构造方法进行初始化
例如:
StringBuffer sb = new StringBuffer(); //初始化对象为空
StringBuffer sb = new StringBuffer(“abc”); //初始化对象是字符串”abc”
注意:
StringBuffer和String属于不同的类型,不能直接进行强制类型
StringBuffer sb = new StringBuffer(s); //String转换为StringBuffer
String s = sb.toString(); //StringBuffer转换为String
2、StringBuffer常用方法
- append():字符串末尾连接字符
- deleteCharAt(int index):删除指定位置字符
- setChatAt(int index,char ch):替换指定位置字符
- insert(int offset,char ch):指定位置插入字符
- reverse:反转字符串
3.相关题目:
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
P A H N
A P L S I I G
Y I R
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR" .
P A H N
A P L S I I G
Y I R
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR" .
4.参考代码:
public class ZigZag {
public String convert(String s,int nRows){
char[] c = s.toCharArray();
StringBuffer[] sb = new StringBuffer[nRows];
for(int i=0;i<sb.length;i++)
sb[i] = new StringBuffer();
int i = 0;
while(i<c.length){
for(int j=0;j<nRows&&i<c.length;j++)
sb[j].append(c[i++]);
for(int j=nRows-2;j>=1&&i<c.length;j--)
sb[j].append(c[i++]);
}
for(int j=1;j<sb.length;j++)
sb[0].append(sb[j]);
return sb[0].toString();
}
}