Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 2005年加拿大计算机竞赛(CCC)S1:雪地通话。我不知道';我不知道我的代码出了什么问题?_Java - Fatal编程技术网

Java 2005年加拿大计算机竞赛(CCC)S1:雪地通话。我不知道';我不知道我的代码出了什么问题?

Java 2005年加拿大计算机竞赛(CCC)S1:雪地通话。我不知道';我不知道我的代码出了什么问题?,java,Java,我调试这个问题的代码时遇到问题。有谁能告诉我或帮我调试这个程序,告诉我这些问题是什么,仅供将来参考?谢谢你抽出时间。 问题链接: 下面是我的问题代码。 代码是用Java编写的 package snowcalls1; import java.util.*; public class SnowCalls1 { public static void main(String[] args) { Scanner input = new Scanner (System.in);

我调试这个问题的代码时遇到问题。有谁能告诉我或帮我调试这个程序,告诉我这些问题是什么,仅供将来参考?谢谢你抽出时间。 问题链接: 下面是我的问题代码。 代码是用Java编写的

package snowcalls1;
import java.util.*;
public class SnowCalls1 {
    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        int l;
        l = input.nextInt();
        String pre [] = new String [l];
        for (int i = 0;i<l;i++){
            pre[i] = input.nextLine();
        }
        String out [] = new String [l];
        for (int i = 0;i<l;i++){
              out[i] = "";
          }
        for (int i = 0;i<l;i++){
            for (int b = 0;b<=12;b++){
                if (pre[i].substring(b,b)== "1")out[i] = out[i] + "1";               
                if (pre[i].substring(b,b) == "2"||pre[i].substring(b,b) == "A"||pre[i].substring(b,b) == "B"||pre[i].substring(b,b) == "C")out[i] = out[i] + "2";
                if (pre[i].substring(b,b) == "3"||pre[i].substring(b,b) == "D"||pre[i].substring(b,b) == "E"||pre[i].substring(b,b) == "F")out[i] = out[i] + "3";
                if (pre[i].substring(b,b) == "4"||pre[i].substring(b,b) == "G"||pre[i].substring(b,b) == "H"||pre[i].substring(b,b) == "I")out[i] = out[i] + "4";
                if (pre[i].substring(b,b) == "5"||pre[i].substring(b,b) == "J"||pre[i].substring(b,b) == "K"||pre[i].substring(b,b) == "L")out[i] = out[i] + "5";
                if (pre[i].substring(b,b) == "6"||pre[i].substring(b,b) == "M"||pre[i].substring(b,b) == "N"||pre[i].substring(b,b) == "O")out[i] = out[i] + "6";
                if (pre[i].substring(b,b) == "7"||pre[i].substring(b,b) == "P"||pre[i].substring(b,b) == "Q"||pre[i].substring(b,b) == "R"||pre[i].substring(b,b)=="S")out[i] = out[i] + "7";
                if (pre[i].substring(b,b) == "8"||pre[i].substring(b,b) == "T"||pre[i].substring(b,b) == "U"||pre[i].substring(b,b) == "V")out[i] = out[i] + "8";
                if (pre[i].substring(b,b) == "9"||pre[i].substring(b,b) == "W"||pre[i].substring(b,b) == "X"||pre[i].substring(b,b) == "Y"||pre[i].substring(b,b)=="Z")out[i] = out[i] + "9";
                if (out[i].length() == 3 || out[i].length() == 7)out[i] = out[i]+ "-";
                if (b==12)System.out.println(out[i]);

            }
        }
    }

}
打包雪地通话1;
导入java.util.*;
公共类雪球1{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int l;
l=输入。nextInt();
字符串pre[]=新字符串[l];

对于(int i=0;i而言,您的问题在于这些行:

for (int i = 0;i<l;i++){
    pre[i] = input.nextLine();
}
您的代码中还有一些其他逻辑错误。下面您可以看到输入1、a、a、2、b和b的工作程序:

Scanner input = new Scanner (System.in);
String l;
l = input.nextLine();
char pre [] = l.toCharArray();

String out = "";

for (int i = 0;i<l.length();i++){
    if (pre[i]== '1')
    {
        out = out + "1";
    }               
    if (pre[i] == '2'||Character.toUpperCase(pre[i])== 'A'|| Character.toUpperCase(pre[i]) == 'B')
    {
        out = out + "2";
    }
}
System.out.println(out);
扫描仪输入=新扫描仪(System.in);
字符串l;
l=输入。nextLine();
char pre[]=l.toCharArray();
串出“”;

对于(int i=0;iyou应该有一个开关,并分配'pre[i]。子字符串(b,b)你有什么问题?为什么它不能像你预期的那样工作?你能提供更多关于你有什么问题的细节吗?第24行是哪一行?你得到NPE是因为你没有初始化
的元素。所以它将是
空的
1谢谢你关于NPE输出的答案。我再次编辑了我的文章,现在我得到了不同的输出?很抱歉打扰您,但我刚刚开始学习Java语言。谢谢您的帮助。这肯定对我帮助很大。我一定会记住这个逻辑,以备将来参考。
Scanner input = new Scanner (System.in);
String l;
l = input.nextLine();
char pre [] = l.toCharArray();

String out = "";

for (int i = 0;i<l.length();i++){
    if (pre[i]== '1')
    {
        out = out + "1";
    }               
    if (pre[i] == '2'||Character.toUpperCase(pre[i])== 'A'|| Character.toUpperCase(pre[i]) == 'B')
    {
        out = out + "2";
    }
}
System.out.println(out);