java - 关于 JAVA 单词顺序反转的基本 Java 编码问题

标签 java string reversing

我正在寻找一种在java中反转单词的方法。 这是我的代码,它发生了错误。

谁能解释一下为什么吗?

import java.util.Scanner;

public class Robot {

    public static void reverse(String text) {
        int leng = text.length();
        int i = 0;
        while (leng-i>=0){System.out.print(text.charAt(leng-i));
        i++;
        }
    }

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        System.out.println("Type in your text: ");
        String text = reader.nextLine();
        System.out.print("In reverse order: ");
        reverse(text);
    }

}

我预计它会颠倒单词的顺序,但事实并非如此。

最佳答案

应该是

int i = 1;

否则,您将收到 StringIndexOutOfBoundsException,因为 text.length() 永远不是有效的索引。

为了使其更短(更酷),您可能需要编写

System.out.print(text.charAt(leng - i++));

不过,we usually do

System.out.print(new StringBuilder(text).reverse());

关于java - 关于 JAVA 单词顺序反转的基本 Java 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063494/

相关文章:

Perl - 源代码的操作码?

java - 如何修复 "Exception in thread "main"java.lang.NoClassDefFoundError : org/springframework/core/io/support/SpringFactoriesLoader"in Spring Tool Suite

java - EV 代码签名极慢

java - Linux下最大线程数

带有 "[^a-zA-Z0-9]+"的 Java String.split 仍然将空格显示为一个单词

c - 逆向工程——使用调试信息进行编译

java - 所有 com.android.support 库必须使用完全相同的版本规范(版本 27.1.1、26.1.0)

python - 如何判断一个字符串是否在 Python 中重复?

java - 拆分包含问号和等号的字符串的最佳方法

java - Java 中的数字反转。前导零和尾随零不会打印