我怎么能输出同一行java

时间:2014-10-07 08:31:31

标签: java switch-statement

到目前为止,我完成了所有代码。它可以运行,我也可以得到我的输出。但我只能获得不同的线路输出,我希望得到同一线路的输出。有办法做到这一点。我使用switch case,我可以用switch case或任何其他语句输出它。

public class practice
{
    public static void main(String args[])
    {
        String name="Farhana Konka";
        String initials= "";
        for(String s: name.split(" "))
        {
            initials+=s.charAt(0);
        }

        char[] myInitials=initials.toCharArray();
        for(int i=0; i<myInitials.length; i++)
        {
            switch(myInitials[i])
            {
            case 'f' :
            case 'F' :

                System.out.println("FFFFF ");
                System.out.println("F     ");
                System.out.println("F     ");
                System.out.println("FFF   ");
                System.out.println("F     ");
                System.out.println("F     ");
                System.out.println("F     ");
                break;
            case 'K' :
            case 'k' :

                System.out.println("K   K ");
                System.out.println("K  K  ");
                System.out.println("K K   ");
                System.out.println("KK    ");
                System.out.println("K K   ");
                System.out.println("K  K  ");
                System.out.println("K   K ");
                break;
            default:
                System.out.print("Nothing happen");
            }
        }

    }
}

它显示不同行的输出。但我希望它在同一条线上。像下面的东西但我得到输出只有不同的线。我怎样才能改变我的代码来做到这一点。我尝试但是没能做到。 enter image description here

4 个答案:

答案 0 :(得分:3)

你需要比单独处理每个字母更聪明。你需要处理每一行的所有字母!因为您无法追溯修改该行的内容。

因此,您需要在每个字母的数组中存储各个行,然后处理第一行的首字母,输入新行,处理第二行的首字母,输入新行,而不仅仅是一个案例开关。等等。

为了写入同一行,您需要使用System.out.print(),但这本身并不能解决您的问题。

编辑:

我根据我的说法将我的版本放在一起,并打印出来:

FFFFFF   AA   RRRRR  H    H   AA   N    N   AA      K    K  OOOO  N    N K    K   AA   
F       A  A  R    R H    H  A  A  NN   N  A  A     K  K   O    O NN   N K  K    A  A  
F      A    A RRRRR  HHHHHH A    A N N  N A    A    KK     O    O N N  N KK     A    A 
FFFF   AAAAAA R  R   H    H AAAAAA N  N N AAAAAA    K K    O    O N  N N K K    AAAAAA 
F      A    A R   R  H    H A    A N   NN A    A    K  K   O    O N   NN K  K   A    A 
F      A    A R    R H    H A    A N    N A    A    K    K  OOOO  N    N K    K A    A 

神奇的是这个:

Map<Character, List<String>> charMap = new HashMap<>();

虽然这个可以完成纯粹的String数组,但这更容易。

祝你好运。

EDIT2: 我讨厌限制你如何做到这一点的作业,这样你就可以编写更糟糕的代码。

    Map<Character, List<String>> charMap = new HashMap<>();

    List<String> listSpace = new ArrayList<>();
    listSpace.add("  ");
    listSpace.add("  ");
    listSpace.add("  ");
    listSpace.add("  ");
    listSpace.add("  ");
    listSpace.add("  ");
    charMap.put(' ', listSpace);


    List<String> listA = new ArrayList<>();
    listA.add("  AA  ");
    listA.add(" A  A ");
    listA.add("A    A");
    listA.add("AAAAAA");
    listA.add("A    A");
    listA.add("A    A");
    charMap.put('a', listA);

    List<String> listF = new ArrayList<>();
    listF.add("FFFFFF");
    listF.add("F     ");
    listF.add("F     ");
    listF.add("FFFF  ");
    listF.add("F     ");
    listF.add("F     ");
    charMap.put('f', listF);

    List<String> listR = new ArrayList<>();
    listR.add("RRRRR ");
    listR.add("R    R");
    listR.add("RRRRR ");
    listR.add("R  R  ");
    listR.add("R   R ");
    listR.add("R    R");
    charMap.put('r', listR);

    List<String> listH = new ArrayList<>();
    listH.add("H    H");
    listH.add("H    H");
    listH.add("HHHHHH");
    listH.add("H    H");
    listH.add("H    H");
    listH.add("H    H");
    charMap.put('h', listH);

    List<String> listK = new ArrayList<>();
    listK.add("K    K");
    listK.add("K  K  ");
    listK.add("KK    ");
    listK.add("K K   ");
    listK.add("K  K  ");
    listK.add("K    K");
    charMap.put('k', listK);

    List<String> listN = new ArrayList<>();
    listN.add("N    N");
    listN.add("NN   N");
    listN.add("N N  N");
    listN.add("N  N N");
    listN.add("N   NN");
    listN.add("N    N");
    charMap.put('n', listN);

    List<String> listO = new ArrayList<>();
    listO.add(" OOOO ");
    listO.add("O    O");
    listO.add("O    O");
    listO.add("O    O");
    listO.add("O    O");
    listO.add(" OOOO ");
    charMap.put('o', listO);

    for(int lineCount = 0; lineCount < 6; lineCount++)
    {
        for(int i = 0; i < name.length(); i++)
        {
            Character c = name.charAt(i);
            List<String> lineList = charMap.get(c);
            String currentLine = lineList.get(lineCount);
            System.out.print("" + currentLine);
            System.out.print(" ");
        }
        System.out.println("");
    }
}

现在我写了这个:

    String[] arraySpace = new String[]
    {
        "  ",
        "  ",
        "  ",
        "  ",
        "  ",
        "  "
    };

    String[] arrayA = new String[]
    {
        "  AA  ",
        " A  A ",
        "A    A",
        "AAAAAA",
        "A    A",
        "A    A"            
    };

    String[] arrayF = new String[]
    {
        "FFFFFF",
        "F     ",
        "F     ",
        "FFFF  ",
        "F     ",
        "F     " 
    };

    String[] arrayR = new String[]
    {
        "RRRRR ",
        "R    R",
        "RRRRR ",
        "R  R  ",
        "R   R ",
        "R    R"    
    };

    String[] arrayH = new String[]
    {
        "H    H",
        "H    H",
        "HHHHHH",
        "H    H",
        "H    H",
        "H    H"
    };

    String[] arrayK = new String[]
    {
        "K    K",
        "K  K  ",
        "KK    ",
        "K K   ",
        "K  K  ",
        "K    K"        
    };

    String[] arrayN = new String[]
    {
        "N    N",
        "NN   N",
        "N N  N",
        "N  N N",
        "N   NN",
        "N    N"
    };

    String[] arrayO = new String[]
    {
        " OOOO ",
        "O    O",
        "O    O",
        "O    O",
        "O    O",
        " OOOO "
    };

    String name = "farhana konka";
    name = name.toLowerCase();
    for(int j = 0; j < 6; j++)
    {
        for(int i = 0; i < name.length(); i++)
        {
            switch(name.charAt(i))
            {
                case 'a':
                    System.out.print(arrayA[j]);
                    break;
                case 'f':
                    System.out.print(arrayF[j]);
                    break;
                case 'r':
                    System.out.print(arrayR[j]);
                    break;
                case 'n':
                    System.out.print(arrayN[j]);
                    break;
                case 'o':
                    System.out.print(arrayO[j]);
                    break;
                case 'k':
                    System.out.print(arrayK[j]);
                    break;
                case ' ':
                    System.out.print(arraySpace[j]);
                    break;
                case 'h':
                    System.out.print(arrayH[j]);
                    break;
                default:
                    break;
            }
            System.out.print("  ");
        }
        System.out.println("");
    }
}

输出:

FFFFFF    AA    RRRRR   H    H    AA    N    N    AA        K    K   OOOO   N    N  K    K    AA    
F        A  A   R    R  H    H   A  A   NN   N   A  A       K  K    O    O  NN   N  K  K     A  A   
F       A    A  RRRRR   HHHHHH  A    A  N N  N  A    A      KK      O    O  N N  N  KK      A    A  
FFFF    AAAAAA  R  R    H    H  AAAAAA  N  N N  AAAAAA      K K     O    O  N  N N  K K     AAAAAA  
F       A    A  R   R   H    H  A    A  N   NN  A    A      K  K    O    O  N   NN  K  K    A    A  
F       A    A  R    R  H    H  A    A  N    N  A    A      K    K   OOOO   N    N  K    K  A    A  

转换案例,耶!它完全相同,除了现在我需要手动做一些我自动做的事情(通过地图中的字符索引数组)。多么愚蠢。

答案 1 :(得分:0)

使用System.out.print代替System.out.println

答案 2 :(得分:0)

使用Print而不是Println

System.out.print("your message");

答案 3 :(得分:0)

每当需要打印到同一行时,您需要使用System.out.print,因为它在打印文本的末尾不包含回车符。如果您需要在文本之后进行回车,则必须使用System.out.println