java - 字符串和运行时错误。 (颠倒字符串中字符顺序的程序)

标签 java string

我正在尝试编写一个简单的程序来反转字符串最后两个字符的顺序。 (如果少于 2 个字符,我将按原样打印字符串)

这是我的代码,

  if(text.length() == 1)
    System.out.println(text);
  else if(text.length() == 2)
    System.out.println(text.substring(1) + text.substring(0,1));
  else
    System.out.println(text.substring(-2) + text.substring(-2,-1) + text.substring(-1));

当我尝试运行输入超过三个字符的程序时,出现运行时错误。

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-2

我以前遇到过这个问题,但我通常只是围绕它编写异常代码。不过,我认为是时候找出如何彻底消除这个问题的方法了。

非常感谢任何帮助。 谢谢。

最佳答案

试试这个,

    String str="Testing";
    int len=str.length();
    String rev = str.substring(0,len-2)+str.charAt(len-1)+str.charAt(len-2);
    System.out.println(rev);

关于java - 字符串和运行时错误。 (颠倒字符串中字符顺序的程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22575843/

相关文章:

c - C 语言中 if 与字符串的逻辑条件

java - String.replace() 奇怪的行为

java - 如何使用正则表达式提供字数限制的描述?

java - AEM AssemblerService 问题 - 无法使用 AEM OSGi bundle 将 2 个或更多 PDF 或 XDP 文档组装成单个文件

java - 图像插值 - 最近邻(处理)

java - Spring Boot + Springbox Swagger 错误

Javascript 无法访问对象键值...它们周围有引号

java - maven 依赖项 java.util.function 未正确加载函数类

python - 当第一个子字符串后有空格时,在 Python 中查找两个子字符串之间的字符串

c - 这是在 c 中将两个字符串加在一起的有效方法吗?