颠倒我的话中的字母而不颠倒句子中的单词
Reverse letters in my words without reversing the words in the sentence
此代码应将我输入的“123ab 445 Hello”反转为 "ba321 544 olleh",但是,我得到 "olleh 544 ba321" 作为我的输出。为什么会这样?
import java.util.StringTokenizer;
import java.util.Scanner;
public class LessNaiveEncryption {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide an input sentence: ");
String userInput = keyboard.nextLine();
StringTokenizer strTokenizer = new StringTokenizer(userInput, " ", true);
System.out.print("The output sentence is : ");
while (strTokenizer.hasMoreTokens()) {
strTokenizer.nextToken();
}
StringBuilder blob = new StringBuilder(userInput);
blob.reverse();
System.out.println(blob);
System.out.print("\n");
}
}
您的主要问题是您没有对 StringTokenizer 执行任何操作。您正在遍历结果,但没有反转它们。将反向放在循环中并打印出结果。
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide an input sentence: ");
String userInput = keyboard.nextLine();
StringTokenizer strTokenizer = new StringTokenizer(userInput, " ", true);
System.out.print("The output sentence is : ");
while (strTokenizer.hasMoreTokens()) {
String str = strTokenizer.nextToken();
StringBuilder blob = new StringBuilder(str);
System.out.print(blob.reverse());
}
System.out.print("\n");
}
您正在反转整个字符串,拆分它然后反转每个拆分:
String[] split = userInput.split(" ");
String result = "";
for(String s : split){
result += new StringBuilder(s).reverse().append(" ").toString();
}
System.out.println(result);
此代码应将我输入的“123ab 445 Hello”反转为 "ba321 544 olleh",但是,我得到 "olleh 544 ba321" 作为我的输出。为什么会这样?
import java.util.StringTokenizer;
import java.util.Scanner;
public class LessNaiveEncryption {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide an input sentence: ");
String userInput = keyboard.nextLine();
StringTokenizer strTokenizer = new StringTokenizer(userInput, " ", true);
System.out.print("The output sentence is : ");
while (strTokenizer.hasMoreTokens()) {
strTokenizer.nextToken();
}
StringBuilder blob = new StringBuilder(userInput);
blob.reverse();
System.out.println(blob);
System.out.print("\n");
}
}
您的主要问题是您没有对 StringTokenizer 执行任何操作。您正在遍历结果,但没有反转它们。将反向放在循环中并打印出结果。
Scanner keyboard = new Scanner(System.in);
System.out.print("Provide an input sentence: ");
String userInput = keyboard.nextLine();
StringTokenizer strTokenizer = new StringTokenizer(userInput, " ", true);
System.out.print("The output sentence is : ");
while (strTokenizer.hasMoreTokens()) {
String str = strTokenizer.nextToken();
StringBuilder blob = new StringBuilder(str);
System.out.print(blob.reverse());
}
System.out.print("\n");
}
您正在反转整个字符串,拆分它然后反转每个拆分:
String[] split = userInput.split(" ");
String result = "";
for(String s : split){
result += new StringBuilder(s).reverse().append(" ").toString();
}
System.out.println(result);