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

Java摩尔斯码转英文程序无报错但无输出,求string.split()用法指导

摩尔斯码转英文无输出问题解析&String.split()用法详解

嗨,咱们一步步来拆解你的问题:

一、程序无输出的常见原因

你说程序没报错但没内容输出,大概率是这几个原因:

  • 输入格式不匹配:摩尔斯码是有规范分隔的(通常字符间用空格,单词间用/或双空格),如果你的程序没处理这些分隔,直接把整段摩尔斯码拿去匹配字母映射表,肯定找不到对应的键,结果就是空字符串,自然没输出。
  • 映射逻辑有问题:比如你的摩尔斯码-字母映射表写错了(比如把"A"对应的.-写成了.- 多了空格),或者匹配时没处理空格/大小写,导致找不到对应字符,拼接出空结果。
  • 输出环节没走对:比如输出的变量本身是空的,或者代码分支没走到输出语句(不过你说没报错,这个概率相对小)。

二、String.split()在这里的作用

摩尔斯码不是连续的字符串,它是由分隔符区分开的独立符号,split()就是帮你把整段的摩尔斯码拆成一个个可单独处理的单元:

  • 比如输入是".- / -... -.-."(对应A BC),用split(" / ")可以先把它拆成[".-", "-... -.-."]两个单词块;
  • 再对每个单词块用split(" "),就能拆成单个的摩尔斯字符:[".-"]和["-...", "-.-."];
  • 这样你就能拿着每个单独的摩尔斯符号,去映射表里找对应的英文字母了。

三、实际代码示例

给你写个极简的可运行示例,你可以对照着调整自己的代码:

import java.util.HashMap;
import java.util.Map;

public class MorseToEnglishConverter {
    public static void main(String[] args) {
        // 先建立摩尔斯码到英文字母的映射表(这里只写了几个,你可以补全所有字母/数字)
        Map<String, String> morseToEnglish = new HashMap<>();
        morseToEnglish.put(".-", "A");
        morseToEnglish.put("-...", "B");
        morseToEnglish.put("-.-.", "C");
        morseToEnglish.put("-..", "D");

        // 示例输入:注意字符用空格分隔,单词用" / "分隔
        String inputMorse = ".- / -... -.-. / -..";

        // 第一步:拆分单词
        String[] morseWords = inputMorse.split(" / ");
        StringBuilder result = new StringBuilder();

        // 遍历每个单词
        for (String word : morseWords) {
            // 第二步:拆分单词里的每个摩尔斯字符
            String[] morseChars = word.split(" ");
            for (String morseChar : morseChars) {
                // 从映射表取对应字母,找不到就留空(也可以加个占位符比如"?")
                result.append(morseToEnglish.getOrDefault(morseChar, ""));
            }
            // 单词之间加空格分隔
            result.append(" ");
        }

        // 输出结果,记得去掉最后多余的空格
        System.out.println("转换结果:" + result.toString().trim());
    }
}

四、排查小技巧

  1. 先打印拆分后的数组,比如System.out.println(Arrays.toString(morseWords));,看看是不是正确拆分了单词;
  2. 检查映射表的键和输入的摩尔斯码是否完全一致(比如有没有多余空格);
  3. 如果输入的单词分隔是双空格,那split()的参数就要改成split(" "),要和输入格式对应上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:11:56