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

如何将Python中的特殊字符替换for循环转换为Java实现?

Python平均单词长度检查器转Java实现指南

原Python逻辑

这段代码的作用是移除句子中的指定标点符号,再将句子分割为单词列表:

for p in "!£$€%^&*()-_=+`¬¦[]{};:'@#~,.<>/?|":
        sentence = sentence.replace(p, '')

words = sentence.split()

你的Java代码雏形

public class AverageWordLength {

    public void average_word_length(String sentence){
        String characters = "!£$€%^&*()-_=+`¬¦[]{};:'@#~,.<>/?|"

        for (char p: characters){
            
        }
    }
}

完成逻辑的关键提示

  • 补全语法细节:characters字符串末尾缺少分号;,Java中所有语句必须以分号结尾,先补上才能通过编译。
  • 实现标点替换:Java的String是不可变类型,每次替换后需要重新赋值给变量。循环内使用sentence = sentence.replace(String.valueOf(p), "");,注意要把char类型转成String才能调用replace方法。
  • 正确分割单词:完成标点移除后,用String[] words = sentence.split("\\s+");分割单词,\\s+可以匹配任意数量的空白字符,和Python默认的split()行为一致。
  • 处理边界情况:如果原句子全是标点,分割后会得到空数组,后续计算平均长度时要先判断数组长度,避免出现除以0的异常。

完整的示例代码片段:

public class AverageWordLength {

    public void average_word_length(String sentence){
        String characters = "!£$€%^&*()-_=+`¬¦[]{};:'@#~,.<>/?|";
        
        // 移除所有指定标点
        for (char p : characters.toCharArray()) {
            sentence = sentence.replace(String.valueOf(p), "");
        }
        
        // 分割成单词数组
        String[] words = sentence.split("\\s+");
        
        // 计算平均单词长度
        if (words.length == 0) {
            System.out.println("没有有效单词");
            return;
        }
        int totalLength = 0;
        for (String word : words) {
            totalLength += word.length();
        }
        double average = (double) totalLength / words.length;
        System.out.println("平均单词长度:" + average);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:25:40