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

如何一次性将List<String[]>中的所有字符串转为大写?

解决方案:将List<String[]>中所有字符串转为大写

当然没问题!这需求很常见,用Java的话有几种简洁的实现方式,我给你整理两个常用方案:

方法1:使用Stream API(Java 8+推荐,简洁优雅)

利用Java 8引入的Stream API可以快速实现批量转换,代码可读性很高:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// 假设你已经有了csvBody这个List<String[]>
List<String[]> csvBodyUpper = csvBody.stream()
    .map(row -> Arrays.stream(row)
        // 处理每个字符串转大写,若存在null值可加判断:s != null ? s.toUpperCase() : null
        .map(String::toUpperCase)
        .toArray(String[]::new))
    .collect(Collectors.toList());

代码解释:

  • csvBody.stream():把原List转换成流,方便后续链式操作
  • map(row -> ...):遍历处理List中的每一个字符串数组
  • Arrays.stream(row).map(String::toUpperCase):将单个字符串数组转为流,对每个元素执行转大写操作
  • toArray(String[]::new):把处理后的流转回字符串数组
  • collect(Collectors.toList()):将所有处理后的数组收集成新的List<String[]>

方法2:传统循环实现(直观易懂,兼容旧版本Java)

如果你的项目还在使用Java 8之前的版本,或者更习惯传统循环写法,可以用这种方式:

import java.util.ArrayList;
import java.util.List;

List<String[]> csvBodyUpper = new ArrayList<>();
for (String[] row : csvBody) {
    String[] upperRow = new String[row.length];
    for (int i = 0; i < row.length; i++) {
        // 同样,若有null值需加判断:row[i] != null ? row[i].toUpperCase() : null
        upperRow[i] = row[i].toUpperCase();
    }
    csvBodyUpper.add(upperRow);
}

代码解释:

  • 先创建一个空的ArrayList用来存放转换后的结果
  • 遍历原List中的每一个字符串数组,创建对应长度的新数组
  • 逐个将原数组中的字符串转大写后存入新数组,再把新数组添加到结果List中

注意事项

如果你的csvBody中存在null字符串,直接调用toUpperCase()会抛出NullPointerException,记得添加null判断逻辑,比如在Stream的map操作中改为:

.map(s -> s != null ? s.toUpperCase() : null)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:10:40