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

Java如何按给定模式反转字符串?求正确实现逻辑

按指定规则反转字符串的Java实现逻辑

核心规则拆解

  • 输出单词的顺序完全由给定的pattern决定,pattern中的每个数字对应原字符串中单词的位置(从1开始计数)
  • 每个取出的原单词需要单独做字符反转,再按pattern顺序拼接

实现步骤

  • 输入预处理:将输入的原字符串按空格分割为单词数组,可用split("\\s+")处理多空格场景,得到的数组下标从0开始,后续取词时需将pattern数字减1对应到数组下标
  • pattern处理:将pattern序列按空格分割转为整数数组,存储取词的顺序
  • 单词反转拼接:遍历pattern整数数组,依次取出对应位置的原单词,用new StringBuilder(单词).reverse().toString()完成单个单词的字符反转,将所有反转后的单词用空格拼接得到最终结果

可运行代码示例

public class ReverseStringByPattern {
    public static void main(String[] args) {
        // 示例1测试
        String input = "A dead fox found in the forest";
        int[] pattern = {7,5,6,4,3,1,2};
        System.out.println(getResult(input, pattern));
    }

    public static String getResult(String input, int[] pattern) {
        // 分割原字符串为单词数组
        String[] words = input.split("\\s+");
        StringBuilder result = new StringBuilder();
        for (int pos : pattern) {
            // pattern是1开头,转成数组0开头的下标
            String originWord = words[pos - 1];
            // 反转单词
            String reversedWord = new StringBuilder(originWord).reverse().toString();
            result.append(reversedWord).append(" ");
        }
        // 去掉末尾多余的空格
        return result.toString().trim();
    }
}

效果验证

示例1输入运行代码后输出为tserof ni eht dnuof xof A daed,和题目给出的示例输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:09