到目前为止,我完成了所有代码。它可以运行,我也可以得到我的输出。但我只能获得不同的线路输出,我希望得到同一线路的输出。有办法做到这一点。我使用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");
}
}
}
}
它显示不同行的输出。但我希望它在同一条线上。像下面的东西但我得到输出只有不同的线。我怎样才能改变我的代码来做到这一点。我尝试但是没能做到。
答案 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