当前位置: 首页 > 知识库问答 >
问题:

Java程序反转句子中的单个单词

隆向晨
2023-03-14

我正在尝试编写一个java程序,它可以反转句子中的每个单词。例如,如果句子是“Hello World.Hello Java”,输出应该是“olleH dlroW.olleH avaJ”。我可以反转,但我得到的输出是“olleH.dlroW olleH.avaJ”,即使是圆点也会反转,这是不应该发生的。谁能帮我修一下吗?

谢谢你!!

我试过这样的方法:

import java.util.Scanner;

public class ReverseWords {
    public static void main(String[] args) {

        System.out.println("Enter a string to be reversed:");
        Scanner input = new Scanner(System.in);

        String reverse = "";

        while(input.hasNextLine())
        {
            String str = input.next();
            for(int i = str.length()-1; i >= 0; i--)
            {
                reverse = reverse + str.charAt(i);
            }
            reverse += " ";
            System.out.println(reverse);
        }
    }

}

预期输出:olleH dlro. olleH avaJ。

我得到的结果是:

OlleH

奥利。德洛

奥利。德洛·奥利

奥利。德洛·奥利。阿瓦伊

共有2个答案

赵雅懿
2023-03-14

这里是java 8解决方案,如果你想限制其他特殊字符,你可能需要修改replace eChar方法。

public static void main(String[] args) {
    String str = "Hello World. Hello Java.";
    String collect = Arrays.stream(str.split("\\s+"))  // split sentences into words
            .map(s -> new StringBuffer(s))             // converting to StringBuffer
            .map(s -> s.reverse())                     // reversing the string
            .map(s -> replaceChar(s))                  // replace first char if it is dot
            .collect(Collectors.joining(" "));         // join all the words

    System.out.println(collect);

}

private static String replaceChar(StringBuffer stringBuffer) {
    if(stringBuffer.charAt(0) == '.') {
        stringBuffer.deleteCharAt(0);
        return stringBuffer.toString() + ".";
    }

    return stringBuffer.toString();
}

如果你想以命令的方式完成,你可以修改你的代码如下:

String str = "Hello World. Hello Java.";
String[] tokens = str.split("\\s+");
String reverseString = "";
for (String token : tokens) {
    String reverse = "";
    for (int i = token.length() - 1; i >= 0; i--) {
        reverse = reverse + token.charAt(i);
    }
    if(reverse.charAt(0) == '.') {
        reverse = reverse.substring(1) + ".";
    }
    reverseString = reverseString + " " + reverse;
}
System.out.println(reverseString);
逄兴昌
2023-03-14

在代码中做了一些修改来处理。用文字表达。

import java.util.Scanner;
public class HelloWorld{
    public static void main(String []args){
        System.out.println("Enter a string to be reversed:");
        Scanner input = new Scanner(System.in);

        String reverse = "";

        while(input.hasNextLine())
        {
            String str = input.next();
            if(str.contains(".")){
                str = str.replace(".","");
                for(int i = str.length()-1; i >= 0; i--)
                {
                    reverse = reverse + str.charAt(i);
                }
                reverse = reverse+".";
            }
            else{
                for(int i = str.length()-1; i >= 0; i--)
                {
                    reverse = reverse + str.charAt(i);
                }
            }
            reverse += " ";
            System.out.println(reverse);
        }
    }
}
 类似资料:
  • 本文向大家介绍Java程序可反转句子中的每个单词,包括了Java程序可反转句子中的每个单词的使用技巧和注意事项,需要的朋友参考一下 句子中的每个单词都可以颠倒,并以与以前相同的顺序显示单词。一个例子如下: 演示此过程的程序如下。 示例 输出结果 现在让我们了解上面的程序。 首先,显示原始字符串。然后,方法用于将所有单词存储在数组strWords []中。证明这一点的代码片段如下所示- 字符串rev

  • 问题内容: 我正在尝试反转每个句子的第二个单词 如果给定的字符串是: 所需的输出应为: 我当前的输出是: 我无法达到所需的输出。不知道我在做什么错 这是我的代码 问题答案: 您可以解决各种问题的简便方法!只需使用一个将指示 偶数 或 奇数 位置的变量,更准确地说是任何单词都将被反转! 查看我在您的代码中进行的以下修改,仅添加了三行: 输入项 我叫xyz 输出: 我的eman是zyx

  • 问题内容: 我在程序中插入了一个字符串 怎样才能得到像这样的反向字符串 这是我面试中的一个面试问题。请任何人可以帮助我解决这个问题 问题答案: 拆分它,然后以相反的顺序将其添加到新的对象中。 打印:

  • 问题内容: 这段代码在函数内部: 这是函数: 它无法正常工作,因为通过输入,我得到以下输出:。第一个字母丢失,循环停止,而不是越过空格到达句子的下一部分。 我正在努力实现这一目标: -> 问题答案: 根据原始帖子的修改,OP现在指示其目标是颠倒句子中单词的字母顺序,但将单词保留在其初始位置。 我认为,最简单的方法是利用String 函数,遍历单词并颠倒其顺序。 该方法定义为: 并将方法更改为: 原

  • 本文向大家介绍Python程序以升序排列句子中的单词,包括了Python程序以升序排列句子中的单词的使用技巧和注意事项,需要的朋友参考一下 为了按升序对句子中的单词进行排序,我们首先需要使用空格作为分隔点将句子分为单词。为简单起见,我们仅在空间上进行分割,并让标点符号在那里。我们也可以使用replace或regex将其删除。 拆分句子后,我们可以使用sort或sorted方法按字典顺序对单词进行排

  • 本文向大家介绍Python程序,用句子中的星号替换单词,包括了Python程序,用句子中的星号替换单词的使用技巧和注意事项,需要的朋友参考一下 我们可以使用程序在句子中用星号替换单词,以检查句子中的脏话等。例如, 如果我们有一个句子, 我们要用星号代替的单词,比如鸭子。然后我们的最后一句话看起来像- 我们可以直接使用python中的replace函数来实现此功能。例如, 示例 输出结果 这将给出输