Java 如何反转已反转的字符串?
我制作了一个程序,让用户输入一个单词、一个短语或一个句子,然后将其反转并显示结果 我的问题是,当我运行它时,它确实会反转它,但它会反转单词,而我所要做的就是保持输入的单词不变,然后只反转它们 这是我目前拥有的Java 如何反转已反转的字符串?,java,Java,我制作了一个程序,让用户输入一个单词、一个短语或一个句子,然后将其反转并显示结果 我的问题是,当我运行它时,它确实会反转它,但它会反转单词,而我所要做的就是保持输入的单词不变,然后只反转它们 这是我目前拥有的 //import statements import java.util.*; //for scanner class // class beginning class WordReverser { public static void main(String[] args
//import statements
import java.util.*; //for scanner class
// class beginning
class WordReverser {
public static void main(String[] args ) {
//Declare variables area
String original, reverse = "";
Scanner in = new Scanner(System.in);
boolean blankString = false;
public StringBuilder reverse();
// beginning message to user to explain the program
System.out.println("Welcome to my reverse word program!");
System.out.println("Please enter in a word or a phrase and see it reversed: ");
//main code and calculations to do
while (!blankString){
System.out.println("Enter a string to reverse");//Collect inputs from user.
original = in.nextLine();
if (original.equals(""))
{
blankString = true ;
}
else {
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
System.out.println("Reverse of entered string is: "+reverse);//Output results here
}
}
//End program message
System.out.println();
System.out.println("Hope you enjoyed using this program!");
}// end main method
}// end class
显然这是一个家庭作业问题,所以我会给你一个正确的方向,但我不会给出完整的答案。您需要一次反转一个单词,而不是整个字符串 您需要实现此伪代码的东西:
original = getStringFromUser();
words[] = breakIntoWords(original);
foreach word in words {
reversed = reverse(word);
print reversed;
}
reverse(string word)
{
return reversed version of the input
}
breakIntoWords(sting sentence)
{
return array with each word as a sep.element
}
如果你阅读文档,你可能会发现
reverse
和breakintoords
已经为你准备好了,所以你只需要调用正确的方法。显然是一个家庭作业问题,所以我会给你一个正确的方向,但我不会给出完整的答案。您需要一次反转一个单词,而不是整个字符串
您需要实现此伪代码的东西:
original = getStringFromUser();
words[] = breakIntoWords(original);
foreach word in words {
reversed = reverse(word);
print reversed;
}
reverse(string word)
{
return reversed version of the input
}
breakIntoWords(sting sentence)
{
return array with each word as a sep.element
}
如果你阅读文档,你可能会发现
reverse
和breakintoords
已经为你准备好了,所以你只需要调用正确的方法。解决问题的关键是学会如何将它们分解成更容易解决的小块。这是一种很好的解决问题的技术,也是编程的核心
你知道如何颠倒句子中的字母。您希望反转每个单词中的字母,但保留单词的原始顺序。或者,换一种说法,你想:
希望这些步骤中的每一步都更易于管理。如果没有,想想如何将它们分解成更小的步骤。例如#2也许你需要一个循环,然后是循环中的某个东西。解决问题的关键是学习如何将问题分解成更容易解决的小部分。这是一种很好的解决问题的技术,也是编程的核心 你知道如何颠倒句子中的字母。您希望反转每个单词中的字母,但保留单词的原始顺序。或者,换一种说法,你想:
希望这些步骤中的每一步都更易于管理。如果没有,想想如何将它们分解成更小的步骤。例如,例如#2,也许你需要一个循环,然后是循环中的某个东西。我认为有两种方法可以快速处理这个问题,如果不是太优雅的话
我认为有两种方法可以很快解决这个问题,如果不是太优雅的话
您可以将输入字符串拆分为单独的单词数组,然后分别反转数组中的每个单词
您可以将输入字符串拆分为单独的单词数组,然后分别反转数组中的每个单词
是否要颠倒词序?在这种情况下,必须在“”处拆分输入字符串 为此,您的else块应该是
String[] words = original.split(" ");
for(int i = words.length-1; i>=0; i--)
reverse += words[i] + " ";
System.out.println("Reverse of entered string is: "+reverse);
你想颠倒词序吗?在这种情况下,必须在“”处拆分输入字符串 为此,您的else块应该是
String[] words = original.split(" ");
for(int i = words.length-1; i>=0; i--)
reverse += words[i] + " ";
System.out.println("Reverse of entered string is: "+reverse);
为了解决您的问题,我对您的代码进行了一些重构。首先,我将您的反向逻辑放在一个单独的方法中
public static String reverse(String strToReverse) {
String original = strToReverse, reverse = "";
boolean blankString = false;
if (original.equals(""))
{
blankString = true ;
}
else {
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
}
return reverse;
}
其次,我将字符串拆分为单词(假设单词之间用简单空格分隔)
publicstaticvoidmain(字符串[]args){
//声明变量区域
字符串原件,反面为“”;
扫描仪输入=新扫描仪(系统输入);
布尔blankString=false;
//公共字符串生成器反向();
//向用户解释程序的开始消息
System.out.println(“欢迎使用我的反向word程序!”);
System.out.println(“请输入一个单词或短语,并将其反转:”);
//主要代码和要做的计算
while(!blankString){
System.out.println(“输入要反转的字符串”);//收集用户的输入。
原始=in.nextLine();
if(原始值等于(“”)
{
blankString=true;
}
否则{
String[]words=original.split(“”);
String[]reversedWords=新字符串[words.length];
StringBuilder reverseBuilder=新StringBuilder();
for(int index=0;index
下面是一个执行示例:
为了解决您的问题,我对您的代码进行了一些重构。首先,我将您的反向逻辑放在一个单独的方法中
public static String reverse(String strToReverse) {
String original = strToReverse, reverse = "";
boolean blankString = false;
if (original.equals(""))
{
blankString = true ;
}
else {
int length = original.length();
for ( int i = length - 1 ; i >= 0 ; i-- )
reverse = reverse + original.charAt(i);
}
return reverse;
}
其次,我将字符串拆分为单词(假设单词之间用简单空格分隔)
publicstaticvoidmain(字符串[]args){
//声明变量区域
字符串原件,反面为“”;
扫描仪输入=新扫描仪(系统输入);
布尔blankString=false;
//公共架线工