首页 > 解决方案 > 我想反转一个字符串..请告诉我为什么它不起作用?

问题描述

import java.util.*;
public class reverse {

    public static void main(String[] args) {
        int i=0;
        Scanner p= new Scanner(System.in);
        String g=p.next();
        int o = g.length();

        while(i<=o)
        {
            int     q=o - i;
             System.out.print(g.charAt(q));
             i++;
        }

    }

}

我得到一个Index out of range exception.

标签: javastringreverse

解决方案


如果这不是家庭作业,更直接的解决方案是使用StringBuilder这样的:

String reversed = new StringBuilder("your string here").reverse().toString();

另一方面,如果你有/想要循环,你可以用一个简单的 for 循环来做到这一点:

for (int i = o - 1; i >= 0; i--) {
    System.out.print(g.charAt(i));
}

您的循环会生成一个超出范围的异常,因为q = o - i在您的情况下,它将评估g.length() - 0您的while循环开始其第一次迭代的时间。g.length(),从 1 开始,使g.length() - 0“超出范围”。


推荐阅读