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

J语言:实现字符串元音转大写、辅音转小写的动词

解决J语言字符串元音大写、辅音小写转换问题

核心实现

利用J的数组操作特性,结合布尔掩码和条件转换即可实现需求,无需复杂控制流:

vowelUpper =: 3 : 0
  vowels =: 'aeiou'
  toupper @. (vowels e. ]) tolower ]
)

测试验证

用示例输入测试:

s=:'authority'
echo vowelUpper s  # 输出: AUthOrIty

代码解释

  1. 3 : 0:定义一个接收单个参数的显式动词,参数为输入字符串
  2. vowels =: 'aeiou':定义小写元音集合,用于后续成员判断
  3. tolower ]:先将输入字符串的所有字符转为小写,确保统一处理(兼容输入含大写的情况)
  4. vowels e. ]:生成布尔掩码数组,标记每个字符是否为元音(1=是,0=否)
  5. toupper @. mask:对掩码标记为1的位置(元音字符)应用toupper转大写,其他位置保持小写

对原尝试的说明

  • 直接使用echo toupper s会将整个字符串转为大写,无法实现仅元音大写的需求
  • J的控制流(如if.)是针对标量设计的,直接用于数组处理会导致逻辑混乱,利用J的原生数组操作(e.生成掩码、@.条件转换)是更高效简洁的方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:10:43