我是Java的初学者,我必须编写一个程序,允许用户输入单词,然后程序向后返回单词,直到用户写下" stop"。每次用户输入一个单词时,java会向后输出它以及输出的前一个单词,我不希望这样。 例如,如果我输入输入罐 它输出,停止 如果我打印猫 它输出potstac 我怎样才能让java向后输出单词而不将它添加到前面的单词中 例如,我想在花盆里输入 它应该输出,停止 我想打印猫 它应该输出,tac
import java.util.*;
public class javapdf2413 {
public static void main (String [] args) {
Scanner in = new Scanner (System.in);
String wordEntered = "";
String backWords = "";
do {
System.out.println("Enter in a word");
wordEntered = in.next();
for (int i = wordEntered.length()-1; i>=0; i--) {
backWords = backWords + wordEntered.charAt(i);
}
System.out.println(backWords);
}while(!wordEntered.equals("stop"));
}
}
答案 0 :(得分:1)
您需要在backWords
循环开头将do
设置回空字符串。如果你不这样做,它只会连接到前一个字符串的末尾 - 这就是你所说的正在发生的事情。在循环体的开头将其设置回""
将基本上"重置"它用于下一个词。
像这样:
do {
backWords = "";
System.out.println("Enter in a word");
wordEntered = in.next();
for (int i = wordEntered.length()-1; i>=0; i--) {
backWords = backWords + wordEntered.charAt(i);
}
System.out.println(backWords);
}while(!wordEntered.equals("stop"));
答案 1 :(得分:0)
尝试使用while循环
执行此操作import java.util.Scanner;
public class TestRun {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
String wordEntered = "";
String backWords = "";
while (true) {
System.out.println("Enter in a word");
wordEntered = in.next();
if (wordEntered.equals("stop")) {
break;
} else {
for (int i = wordEntered.length() - 1; i >= 0; i--) {
backWords = backWords + wordEntered.charAt(i);
}
System.out.println(backWords);
backWords = "" ;
}
}
}
}
答案 2 :(得分:0)
只需在do循环中初始化变量
String wordEntered;
String backWords;
do {
wordEntered = "";
backWords = "";
System.out.println("Enter in a word");
wordEntered = in.next();
for (int i = wordEntered.length()-1; i>=0; i--) {
backWords = backWords + wordEntered.charAt(i);
}
System.out.println(backWords);
}while(!wordEntered.equals("stop"));
答案 3 :(得分:0)
请注意 - 字符串是不可变对象。使用正确的用例和方法。尝试尽可能多地使用StringBuilder作为非并发代码。