我自定义了一个将字符串反转的方法:传入一个原字符串,可以将其反转返回一个新的字符串。
方法里,定义一个StringBuffer,长度和String相同。
然后定义两个指针分别指向原字符串首位置和新字符串尾位置。
遍历字符串并将原字符串每个字符反向加入到新字符串,
然后将StringBuffer toString
代码
- public class StringTest2 {
- public static void main(String[] args) {
-
- String str = "hello,java";
- String newStr = myReverse(str);
- System.out.println(newStr);
- }
-
- /*
- * 定义一个StringBuffer字符串
- * 循环遍历原字符串,将每一位字符按逆序存储到新字符串中
- * */
- public static String myReverse(String str){
-
- //定义StringBuffer字符串,长度和原字符串相同
- StringBuffer sb = new StringBuffer(str.length());
-
- //定义指针指向原字符串头位置
- int head = 0;
- //定义指针指向新字符串尾位置
- int tail = sb.length()-1;
-
- for(;head < str.length(); head++,tail--){
- //取出原字符串字符
- char ch = str.charAt(head);
- //将字符放入新字符串
- sb.setCharAt(tail, ch);
- }
- return sb.toString();
- }
- }
复制代码 结果String newStr = myReverse(str); 出现异常
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
|