java - 为什么我没有得到输出?

标签 java

给定的问题是: 字符串只能包含 a、b 或 c。不能有 2 个连续的相同字符。第一个和最后一个字符不能相同。现在给定一个带有‘a’、‘b’、‘c’或‘?’的字符串。我们需要找到满足上述条件的替换‘?’的字符串。对于多个答案,显示按字典顺序排列的最小字符串。对于无法回答的情况,显示“不可能”。

import java.util.*;

class Replace {
    public static void main(String args[]) {
        char[] arr = { 'a', 'b', 'c' };
        char Pre, Suc;
        Scanner in = new Scanner(System.in);
        String str = new String();
        String str2 = new String();
        System.out.println("Enter the String");
        while (in.hasNextLine()) {
            str = in.nextLine();
        }
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == '?') {
                Pre = str.charAt(i - 1);
                Suc = str.charAt(i + 1);
                for (int j = 0; j < 3; i++) {
                    while (arr[j] != Pre && arr[j] != Suc) {
                        str2 = str.substring(0, i) + arr[j]
                                + str.substring(i + 1, (str.length() - 1));
                    }
                }
            }
        }
        System.out.println(str2);
    }
}

代码正在编译,没有任何错误。我仍然需要根据问题在代码中添加一些内容,但我试图检查代码到目前为止是否正确,但我没有得到任何输出。欢迎提供任何改进代码的提示/建议。

最佳答案

  • 代码 Pre = str.charAt(i-1);Suc = str.charAt(i+1); 当“?”时出现问题是第一个/最后一个字母。它将导致 java.lang.StringIndexOutOfBoundsException
  • 目前您没有离开用于读取输入的 while 循环,因此永远不会到达 System.out.println(str2);

关于java - 为什么我没有得到输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698455/

相关文章:

java - 无法在 Java 中将 String 转换为 int

java - java中的millis字符串格式

java - SALT 和 KEY 的区别。加密

java - 使用 ResultSet 渲染数据时出错

java - 我无法在 Java 中设置 -Xmx

java - 如何防止 Apache Tomcat 中的 PemGen 空间错误

java - 在同一 Activity 中按后退按钮的正确实现是什么?

java - 仅从网页中抓取特定详细信息

java - 如何复制代词(代词)及其先行词

java - 是否可以声明并实现一个方法一次,但改变返回类型以稳健地匹配子接口(interface)?