当前位置: 首页 > 面试题库 >

反转句子中每个单词的字符-代码日志

蒋乐意
2023-03-14
问题内容

这段代码在main函数内部:

Scanner input = new Scanner(System.in);

System.out.println("Type a sentence");
String sentence = input.next();

Stack<Character> stk = new Stack<Character>();
int i = 0;

while (i < sentence.length())
{
    while (sentence.charAt(i) != ' ' && i < sentence.length() - 1)
    {
        stk.push(sentence.charAt(i));
        i++;
    }
    stk.empty();
    i++;
}

这是empty()函数:

public void empty()
{
    while (this.first != null)
        System.out.print(this.pop());
}

它无法正常工作,因为通过输入,example sentence我得到以下输出:lpmaxe。第一个字母丢失,循环停止,而不是越过空格到达句子的下一部分。

我正在努力实现这一目标:

This is a sentence -> sihT si a ecnetnes


问题答案:

根据原始帖子的修改,OP现在指示其目标是颠倒句子中单词的字母顺序,但将单词保留在其初始位置。

我认为,最简单的方法是利用String split函数,遍历单词并颠倒其顺序。

String[] words = sentence.split(" "); // splits on the space between words

for (int i = 0; i < words.length; i++) {
    String word = words[i];
    System.out.print(reverseWord(word));

    if (i < words.length-1) {
        System.out.print(" "); // space after all words but the last
    }
}

该方法reverseWord定义为:

public String reverseWord(String word) {
    for( int i = 0; i < word.length(); i++) {
        stk.push(word.charAt(i));
    }
    return stk.empty();
}

并将empty方法更改为:

public String empty() {
    String stackWord = "";
    while (this.first != null)
        stackWord += this.pop();
    return stackWord;
}

原始回应

最初的问题表明,OP希望完全推翻这句话。

您有一个真正不需要的双循环构造。

考虑以下逻辑:

  1. 从输入字符串中读取每个字符并将该字符推入堆栈
  2. 当输入字符串为空时,从堆栈中弹出每个字符并将其打印到屏幕上。

所以:

for( int i = 0; i < sentence.length(); i++) {
    stk.push(sentence.charAt(i));
}
stk.empty();


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

  • 问题内容: 我的代码中有一个小问题。我正在尝试反转单词和字符串的字符。例如,“狗跑了”将变成“ ehT神纳尔” 该代码几乎可以正常工作。它只是不添加空格。你会怎么做? 问题答案: 您走在正确的轨道上。主要问题是一个空字符串,而不是一个空格(即使您解决了这个问题,您可能也不想在最后一个单词之后留一个空格)。 这是您可以更简洁地执行此操作的方法:

  • 本文向大家介绍Java程序可反转句子中的每个单词,包括了Java程序可反转句子中的每个单词的使用技巧和注意事项,需要的朋友参考一下 句子中的每个单词都可以颠倒,并以与以前相同的顺序显示单词。一个例子如下: 演示此过程的程序如下。 示例 输出结果 现在让我们了解上面的程序。 首先,显示原始字符串。然后,方法用于将所有单词存储在数组strWords []中。证明这一点的代码片段如下所示- 字符串rev

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

  • 我一直在试图弄清楚如何计算句子每个单词中的元音和字符。例如 在句子 < code>hello : 5个字符,2个元音 <代码>有:5个字符,2个元音 。我见过完整句子做同样事情的代码。但不是一个字一个字地。 下面是我一直在做的编码 输入将全部。我很难弄清楚这一点。 在运行代码时,我没有得到元音计数。我能把句子分开。但元音计数没有发生。

  • 问题内容: 我要扭转各个人在Java中的String(不是整个字符串,只是每个人的字)的字。 示例:如果输入String为“ Hello World”,则输出应为“ olleH dlroW”。 问题答案: 这应该可以解决问题。这将遍历源字符串中的每个单词,使用StringBuilder的内置方法将其反转,然后输出反转的单词。 输出: 注意:评论者正确地指出了一些我认为应该在此处提及的内容。本示例将