Java 运行时字符串中的Char Append错误变量可能尚未初始化

Java 运行时字符串中的Char Append错误变量可能尚未初始化,java,string,Java,String,例如,如果要在For循环结束后打印密码字符串,我遇到一个错误: 您需要更改此设置以内联方式查看我的评论: for(int j=0; j<allChar.length(); j++) { if(allChar.charAt(j) == a) { char c= allChar.charAt(j+key); String cipher = "null"+c; System.out.print

例如,如果要在For循环结束后打印密码字符串,我遇到一个错误:


您需要更改此设置以内联方式查看我的评论:

for(int j=0; j<allChar.length(); j++)
{
    if(allChar.charAt(j) == a)                   
    {
        char c= allChar.charAt(j+key);
        String cipher = "null"+c;

        System.out.print("\t"+c );
    }
    System.out.println(cipher);
    // cipher is not defined / initialzed here.
    // this is not the "end" of the loop but within its body,
    // thus prints on every iteration
}
致:


运行ATBASH密码的代码谢谢帮助亲爱的

 import java.util.Scanner;

  class Asif
    {
        public static void main(String args[])
       {
       String allchar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       Scanner a= new Scanner(System.in);
       System.out.println("Enter the plainText For Cipher here ");
       String plainText=a.nextLine();
       plainText=plainText.replaceAll(" ", "");
       plainText=plainText.toUpperCase();
       int len= plainText.length();
       int len1 = allchar.length();
       String cipher="";

       for(int i=0; i<len; i++)
       {
           char b=plainText.charAt(i);
           for(int j=0; j<26; j++)
           {
               char c=allchar.charAt(j);
               if(c == b )
               {
                   int index=allchar.indexOf(c);
           int position=25-index;
                   cipher+= allchar.charAt(position);
                   break;

               }
           }
       }
       System.out.println(cipher);       
     }
 }

你能发布完整的错误消息吗?先生,我得到了一个要点,我没有在for循环之前初始化密码字符串,我在for循环的边界中定义了字符串,这就是为什么当我想访问它的边界外,那么它是给一个错误谢谢你的评论…请保留问题,当你的问题解决时。只需接受帮助您解决问题的答案。@Tom我有一个问题,您能回答我吗???如果您还有其他问题,请单击右上角的“提问”按钮创建一个问题。所以,在问题解决后,请不要再改变你的问题。这不是Stackoverflow的工作原理。回答很好Axel先生,我很明白你的意思,但还有一个小问题。你能帮我发布一个答案吗?一个ATBASH密码的代码,但它给出了一个错误。你能帮我检查一下吗?先生,我有一个问题,你在吗?你应该以新问题的形式发布新问题。不作为自我评论或自我回答,以便社区可以查看和参与@AxelAmthor我不认为这是一个问题。这更有可能是他现在使用的完整代码。还有另一个答案,是一个新问题,但现在被删除了。先生,这次我的问题是关于java手写控制识别器的,我想知道一些方向,你能帮我吗???@AxelAmthor好的,那么请给我看一句话,我在这个答案中有一个问题。当你搜索时,请重新思考我的句子还有另一个答案是一个新问题,但现在被删除了。。他的第二个答案是关于他的新问题,但现在被删除了。这与这个答案无关。我们同时有两个答案:就在你的帖子上方和OP的自我回答中
cipher  = ""; // initalize cipher
for(int j = 0; j < allChar.length(); j++)
{
    if(allChar.charAt(j) == a)                   
    {
        char c= allChar.charAt(j + key);
        cipher += "null"+c; // don't know the logic here!

        System.out.print("\t" + c);
    }
}
System.out.println(cipher); // print result after loop
 import java.util.Scanner;

  class Asif
    {
        public static void main(String args[])
       {
       String allchar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       Scanner a= new Scanner(System.in);
       System.out.println("Enter the plainText For Cipher here ");
       String plainText=a.nextLine();
       plainText=plainText.replaceAll(" ", "");
       plainText=plainText.toUpperCase();
       int len= plainText.length();
       int len1 = allchar.length();
       String cipher="";

       for(int i=0; i<len; i++)
       {
           char b=plainText.charAt(i);
           for(int j=0; j<26; j++)
           {
               char c=allchar.charAt(j);
               if(c == b )
               {
                   int index=allchar.indexOf(c);
           int position=25-index;
                   cipher+= allchar.charAt(position);
                   break;

               }
           }
       }
       System.out.println(cipher);       
     }
 }