java 字符串索引越界错误

标签 java

我正在尝试颠倒一个句子。 (如果句子是“我是一只猫”,那么结果应该是“猫是我”)问题是我遇到索引越界错误,我不知道如何解决这个问题。不确定我的索引是否错误或者子字符串部分是否错误。我只是 Java 的初学者,所以非常感谢任何帮助。错误:字符串索引超出范围:-1

谢谢

public class ReverseWords {

    public static void main(String [] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Enter File Name: ");
        String fileName = in.nextLine();
        File f = new File(fileName);
        try {
            Scanner input = new Scanner(f);
            int x = 1;
            int n = input.nextInt();
            while (x<n) {
                String line = input.nextLine();
                Queue<String> q = new LinkedList<String>();
                q.add(line);
                int ws = line.indexOf(" ");
                String word = line.substring(0,ws);
                ArrayList<String> a = new ArrayList<String>();
                while (line.length() > 0) {
                    a.add(word);
                    q.remove(word);
                }
                System.out.println("Case #" + x);
                for (int i = a.size(); i != 0; i--) {
                    System.out.print(a.get(i));
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

最佳答案

摘自String的Java文档:

public int indexOf(int ch)

...

If no such character occurs in this string, then -1 is returned.

您准备好迎接不再空白了吗?

例如在最后一次迭代...

但看起来还有其他错误。

关于java 字符串索引越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861629/

相关文章:

java - 尝试获取空索引时出现 IndexOutOfBoundsException : index: 1, size: 1 错误

java - 如何理解 for 循环初始化的第 23 行发生了什么

java - 在 cli 中运行 gradlew build 时遇到问题

java - ou 不是 ResultSet - 6.x 版本和 Hibernate 的 MS SQL 驱动程序问题

java - 如何在Android应用程序中获得权限?

java - 在 fragment 中播放声音

java - 将 JButton 添加到 JScrollPane

java - 调整已完成事件的大小?

java - Spring 在 security-context.xml 中使用 applicationContext 中的 bean

java - 数组索引越界帮助 (Java)