You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Stack实现句号检测逐句反转句子开发咨询

逐句反转的实现调整

当前逻辑没有做句子边界识别:直接将整段文本拆分出的所有单词全部压入同一个栈,弹栈时自然会跨句子把内容整体倒序,和逐句反转的需求不匹配。
要实现目标效果,可按照「句子拆分-单句反转-拼接还原」的思路调整,核心改动点:

  • 先按句号将原文本切分为独立的句子片段,跳过空的无效片段
  • 对每个句子片段单独执行单词反转:
    • 将片段拆为单词压入栈,注意不要把附着在单词上的句号当成普通单词压栈,避免标点位置错位
    • 弹栈拼接出单词逆序的句子主体,再将剥离的句号补回句子末尾
  • 将所有处理完成的反转句子按原顺序拼接,清理多余空格后输出即可
改进后的可运行代码
import java.util.Stack;
import java.util.Scanner;

public class NolascoStackReverse {

 public static void main (String[] args) {
      Scanner in = new Scanner(System.in);
      Stack<String> wordStack = new Stack<>();
      StringBuilder totalOutput = new StringBuilder();
      
      System.out.println("Enter a sentence to be reversed: ");
      String str = in.nextLine();

      // 按句号分割句子,正则中.为特殊字符需转义
      String[] sentenceList = str.split("\\.");
      for (String rawSentence : sentenceList) {
          String cleanedSentence = rawSentence.trim();
          // 跳过空片段(兼容文本末尾连续输入句号的场景)
          if (cleanedSentence.isEmpty()) {
              continue;
          }
          // 拆单词入栈
          String[] words = cleanedSentence.split(" ");
          for (String word : words) {
              // 过滤连续空格产生的空字符串
              if (!word.isEmpty()) {
                  wordStack.push(word);
              }
          }
          // 弹栈拼接单句反转内容
          StringBuilder reversedPart = new StringBuilder();
          while (!wordStack.empty()) {
              reversedPart.append(wordStack.pop()).append(" ");
          }
          // 清理末尾空格,补句号后追加到总输出
          totalOutput.append(reversedPart.toString().trim())
                     .append(". ");
      }

      System.out.println("Here is the reversed order: ");
      // 清理总输出末尾多余的空格后打印
      System.out.println(totalOutput.toString().trim());
   }
}
效果说明

输入测试文本Hello my name is blank. nice to meet you.时,程序会将文本按句号切分为两个独立句子,分别完成单词反转后拼接,最终输出结果为blank is name my Hello. you meet to nice.,和预期完全一致。
如果后续需要兼容感叹号、问号等其他作为句子边界的标点,只需在拆分逻辑中扩展对应识别规则,将标点剥离后补回句子末尾即可,整体逻辑无需调整。


内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 22:27:07