Java 如何初始化字符串变量?代码没有错误,但由于未初始化变量name而无法编译

Java 如何初始化字符串变量?代码没有错误,但由于未初始化变量name而无法编译,java,string,Java,String,我写了这段代码,但我认为我做错了什么,因为它没有按预期打印出来。用户输入他们的名字,它应该为他们名字的每个字母吐出一个描述。除了不能识别变量字母外,代码的所有方面都是完美的。如何初始化它以使其工作 今天到期。有人能看一下,告诉我我遗漏了什么吗 import java.util.Scanner; /** * This program asks for a mane and will print out * an acrostic name poem. * * @author () *

我写了这段代码,但我认为我做错了什么,因为它没有按预期打印出来。用户输入他们的名字,它应该为他们名字的每个字母吐出一个描述。除了不能识别变量字母外,代码的所有方面都是完美的。如何初始化它以使其工作

今天到期。有人能看一下,告诉我我遗漏了什么吗

import java.util.Scanner;

/**
 * This program asks for a mane and will print out
 * an acrostic name poem.
 *
 * @author ()
 * @version (October 24th, 2017)
 */
public class AcrosticName {
    public static void main(String[] args) {
        String name;        //a string of characters
        String letter = "";
        int length;

        Scanner input = new Scanner(System.in);

        //Print a program header
        System.out.println();
        System.out.println("Arcostic Poem Maker");
        System.out.println();

        //Have user enter their name
        System.out.println("Enter Your Name: ");
        name = input.nextLine();
        length = name.length();

        //for a loop to go through the name
        //and find letters used in name
        for (int i = 0; i < length; i++) {
            if (letter.equals("A") || letter.equals("a")) {
                System.out.println(" A is for Academic, you are smart");
            } else if (letter.equals("B") || letter.equals("b")) {
                System.out.println(" B is for Benevolent, you are nice");
            } else if (letter.equals("C") || letter.equals("c")) {
                System.out.println("C is for Cosmopolitan, well-versed in cultures");
            } else if (letter.equals("D") || letter.equals("d")) {
                System.out.println("D is for Decent, a heart of gold");
            } else if (letter.equals("E") || letter.equals("e")) {
                System.out.println("E is for Enigmatic, you have an alluring pull");
            } else if (letter.equals("F") || letter.equals("f")) {
                System.out.println("F is for Fine, a jolly good fellow");
            } else if (letter.equals("G") || letter.equals("g")) {
                System.out.println("G is for Gentle, a kind soul ");
            } else if (letter.equals("H") || letter.equals("h")) {
                System.out.println(" H is for Hip, cooler than everyone else");
            } else if (letter.equals("I") || letter.equals("i")) {
                System.out.println("I is for Independent, never swayed by others");
            } else if (letter.equals("J") || letter.equals("j")) {
                System.out.println("J is for Joyful, radiating bliss");
            } else if (letter.equals("K") || letter.equals("k")) {
                System.out.println("K is for Kindred, you feel like family");
            } else if (letter.equals("L") || letter.equals("l")) {
                System.out.println("L is for Light-hearted, you have an easy laughter");
            } else if (letter.equals("M") || letter.equals("m")) {
                System.out.println("M is for Meticulous, careful with details");
            } else if (letter.equals("N") || letter.equals("n")) {
                System.out.println("N is for Nutty, full of wackiness");
            } else if (letter.equals("O") || letter.equals("o")) {
                System.out.println("O is for Oasis, full of zen");
            } else if (letter.equals("P") || letter.equals("p")) {
                System.out.println("P is for Popular, liked by all");
            } else if (letter.equals("Q") || letter.equals("q")) {
                System.out.println("Q is for Quintessential, the epitome of awesomeness");
            } else if (letter.equals("R") || letter.equals("r")) {
                System.out.println("R is for Ravishing, an entrancing beauty");
            } else if (letter.equals("S") || letter.equals("s")) {
                System.out.println("S is for Sharp, always observant");
            } else if (letter.equals("T") || letter.equals("t")) {
                System.out.println("T is for Tolerant, endless patience");
            } else if (letter.equals("U") || letter.equals("u")) {
                System.out.println("U is for Unassuming, ever humble");
            } else if (letter.equals("V") || letter.equals("v")) {
                System.out.println("V is for Virtuous, living in righteousness");
            } else if (letter.equals("W") || letter.equals("w")) {
                System.out.println("W is for Wacky, a unique personality");
            } else if (letter.equals("X") || letter.equals("x")) {
                System.out.println("X is for X-ray, you're a visionary");
            } else if (letter.equals("Y") || letter.equals("y")) {
                System.out.println("Y is for Youth, eternally young at heart");
            } else if (letter.equals("Z") || letter.equals("z")) {
                System.out.println("Z is for Zippy, living at breakneck speed");
            }
        }
    }
}
import java.util.Scanner;
/**
*此程序要求使用鬃毛,并将打印出来
*一首首首首字母缩写的名字诗。
*
*@author()
*@版本(2017年10月24日)
*/
公共类AcrosticName{
公共静态void main(字符串[]args){
字符串名称;//一个字符串
字符串字母=”;
整数长度;
扫描仪输入=新扫描仪(System.in);
//打印程序标题
System.out.println();
System.out.println(“神秘的诗人”);
System.out.println();
//让用户输入他们的名字
System.out.println(“输入您的姓名:”);
name=input.nextLine();
length=name.length();
//用于循环遍历名称
//找到名字中的字母
for(int i=0;i
您在
for
循环的
开头缺少
字母的赋值

for (int i = 0; i < length; i++)
{
    letter = Character.toString(name.charAt(i));
    //...
for(int i=0;i
“不按预期方式打印”给出更多细节。输入、输出和预期输出是什么?因此,在编译和运行它时,它要求输入一个名称,例如Sam。它应该输出:S代表sassy a代表焦虑M代表仔细。所有这些都将在单独的行中一个接一个。我给出的示例不完全是代码上的内容,而是更多或更少的内容rn关于调试。这会帮助您很快发现问题。它不起作用。出现了一个错误。它说需要一个数组,说明说我不能使用数组。很抱歉。我用C#写了答案。我只是用Java修改了它。