java - 我想反转一个字符串..请告诉我为什么它不起作用?
问题描述
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
.
解决方案
如果这不是家庭作业,更直接的解决方案是使用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
“超出范围”。
推荐阅读
- model-view-controller - 此页面包含非安全上下文中的密码或信用卡输入
- oracle - oracle序列nextval和currval混淆
- security - 当我有两个 CSP(内容安全策略)策略 - 标头和元时会发生什么?
- java - Java httpServletRequest 转换成数组
- vulkan - 图形和当前队列真的可以不同吗?
- c# - 通过 C# 代码缩放 azure 函数
- python - 如何在 Robot Framework 中处理 000 填充
- json - Odoo:将 res.company 对象导出为 JSON
- azure - 为什么不应该将所有数据放在一个 CosmosDB 集合中?
- sql - 逆向工程一个多维数据集(分析服务),为 .NET 应用程序启用数据访问?