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

如何将字符串"My Name is Khan"转换为指定输出"Kh anis Na meMy"?

解决方案:实现指定字符串转换

问题描述

现有Java代码处理输入字符串"My Name is Khan"时,输出为"Khan is Name My",但实际需求是输出"Kh anis Na meMy",需要修改代码实现该转换逻辑。

原代码问题分析

原代码仅实现了单词逆序输出:按空格分割字符串为单词数组后,从后往前遍历输出每个单词,这与需求的字符重组逻辑完全不符。

实现思路

要得到目标输出,需按以下步骤处理:

  • 将输入字符串按空格分割为单词数组,再将数组逆序
  • 对逆序后的单词进行拆分拼接:
    1. 取逆序后第一个单词的前半部分
    2. 取第一个单词的后半部分 + 第二个单词的全部内容
    3. 取第三个单词的前半部分
    4. 取第三个单词的后半部分 + 第四个单词的全部内容
  • 将上述处理后的片段用空格拼接,得到最终结果

修正后的代码

class HelloWorld {
    public static void main(String[] args) {
        String result = reverseString("My Name is Khan");
        System.out.println(result); // 输出: Kh anis Na meMy
    }
    
    public static String reverseString(String input) {
        // 按空格分割成单词数组
        String[] words = input.split(" ");
        // 逆序单词数组
        String[] reversedWords = new String[words.length];
        for (int i = 0; i < words.length; i++) {
            reversedWords[i] = words[words.length - 1 - i];
        }
        
        // 按规则拼接处理后的片段
        StringBuilder sb = new StringBuilder();
        // 处理第一个单词的前半部分
        String firstWord = reversedWords[0];
        int halfFirst = firstWord.length() / 2;
        sb.append(firstWord.substring(0, halfFirst)).append(" ");
        
        // 处理第一个单词后半+第二个单词
        sb.append(firstWord.substring(halfFirst)).append(reversedWords[1]).append(" ");
        
        // 处理第三个单词的前半部分
        String thirdWord = reversedWords[2];
        int halfThird = thirdWord.length() / 2;
        sb.append(thirdWord.substring(0, halfThird)).append(" ");
        
        // 处理第三个单词后半+第四个单词
        sb.append(thirdWord.substring(halfThird)).append(reversedWords[3]);
        
        return sb.toString();
    }
}

代码说明

  • 首先将原单词数组逆序,得到["Khan", "is", "Name", "My"]
  • 对Khan(长度4)取前2个字符Kh,后半部分an拼接is得到anis
  • 对Name(长度4)取前2个字符Na,后半部分me拼接My得到meMy
  • 用StringBuilder高效拼接所有片段,避免字符串拼接的性能损耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:58:36