为什么在我的程序中我将输出放在一行上?像abc123 ...我希望我的输出打印在多行,与我的输入相同..
import java.util.Scanner;
class Reverse
{
public static void main(String args[])
{
String original;
String reverse = "";
Scanner kbd = new Scanner(System.in);
while (kbd.hasNextLine()) {
original = kbd.nextLine();
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- ) {
reverse = reverse + original.charAt(i);
}
}
System.out.println(reverse);
}
}
应该是这样的:
input: abc
123
...
output:cba
321
...
答案 0 :(得分:1)
def guessinggame ():
d = input("Enter a random word: ")
e = input("How many letters does the word has?: ")
f = len(d)
if( "e" == len(d)):
print("You are right!")
guessinggame()
答案 1 :(得分:1)
这是一种方法:
import java.util.Scanner;
class Reverse {
public static void main(String args[])
{
String original;
String reverse = "";
Scanner kbd = new Scanner(System.in);
StringBuilder output = new StringBuilder();
while (kbd.hasNextLine())
{
original = kbd.nextLine();
StringBuilder sb = new StringBuilder(original);
output.append(sb.reverse().toString()).append("\n");
}
System.out.println(output.toString());
}
}
编辑 我注意到在您的问题中,您似乎只想在提供所有输入后打印输出。我已经修改了原始答案中的代码来执行此操作。
答案 2 :(得分:1)
试试这个:
package stackoverflow;
import java.util.Scanner;
class Reverse
{
public static void main(String args[])
{
String original;
String reverse = "";
Scanner kbd = new Scanner(System.in);
while (kbd.hasNextLine()) {
original = kbd.nextLine();
//befor you add the reversed string add a jump line firs
if(reverse.length()>0)reverse=reverse+"\n";
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- ) {
reverse = reverse + original.charAt(i);
}
}
System.out.println(reverse);
}
}
答案 3 :(得分:1)
您应该更改此部分
for ( int i = length - 1 ; i >= 0 ; i-- ) {
reverse = reverse + original.charAt(i);
}
in
for ( int i = length - 1 ; i >= 0 ; i-- ) {
reverse = reverse + original.charAt(i);
}
reverse = reverse + '\n';
这将添加换行符。
我有一个建议 - 使用StringBuilder
作为新的反向字符串
像这样:
public static void main(String args[]) {
String original;
StringBuilder sbReverse = new StringBuilder();
Scanner kbd = new Scanner(System.in);
while (kbd.hasNextLine()) {
original = kbd.nextLine();
int length = original.length();
for (int i = length - 1; i >= 0; i--) {
sbReverse.append(original.charAt(i));
}
sbReverse.append('\n');
}
System.out.println(sbReverse.toString());
}
原因 - 在Java中,字符串是不可变的。
这意味着每次执行reverse = reverse + original.charAt(i);
时,都会在内存中创建一个新字符串。
答案 4 :(得分:0)
由于您使用的是System.out.printf()
,因此您只需输出一行。请改用System.out.println()
。
PS:一种更简单的反转字符串的方法是使用StringBuilder中的reverse()。
reverse = new StringBuilder(original).reverse().toString();