Java多维数组存储异常求助:如何将句子拆分存入对应列?
解决二维数组列拆分问题
嘿,我一眼就看出问题所在啦!你现在是把names数组里的每整个字符串直接塞进了words[i][0]里,自然所有内容都挤在第一列咯。要实现你想要的每列存一个元素的效果,关键是把每个names字符串按空格拆分成子字符串,再分别赋值给二维数组的对应列。
具体修改方案
下面是调整后的代码,我加了详细注释帮你理解:
String[] names = topNames.toArray(new String[topNames.size()]); String[][] words = new String[names.length][5]; for (int i = 0; i < names.length; i++) { // 用\\s+匹配一个或多个空白字符(包括空格、制表符),避免多个空格导致拆分出空元素 String[] splitParts = names[i].split("\\s+"); // 先检查拆分后的元素数量是否符合预期,避免数组越界 if (splitParts.length == 5) { // 把拆分后的每个元素依次放到二维数组的对应列 for (int j = 0; j < 5; j++) { words[i][j] = splitParts[j]; } } else { // 可选:处理格式异常的情况,比如打印错误提示 System.err.println("警告:第" + i + "条数据格式不对,无法拆分为5个部分:" + names[i]); } }
额外注意点
如果你的数据里存在包含空格的字段(比如名字是"Mary Ann"这种),那直接按空格拆分就会出错。这种情况下你需要确认数据的分隔规则——比如是否用逗号、制表符等其他分隔符,或者数据本身保证每个字段不含空格。
内容的提问来源于stack exchange,提问作者Workkkkk
相关产品推荐
相关产品推荐

