gpt4 book ai didi

java - java中的句子/字符串到二维数组

转载 作者:行者123 更新时间:2023-12-02 01:09:25 24 4
gpt4 key购买 nike

我需要从给定的字符串创建一个二维数组。行数将是 String 中的单词数,列数将是 String 中最长单词的长度(单词之间用空格分隔)。如果字符串中有一个 2 个字母的单词(例如“is”)并且列号为 8,我需要用空格填充其余单元格。

示例:

字符串:“aaa bbbb ccccc dddddd”

数组:stringArray[4][6]

输出:{{a,a,a,' ',' ',' '},{b,b,b,b,' ',' '},{c,c,c,c,c, ' '},{d,d,d,d,d,d}}

代码是:

public static void TextToArray(String s) {
int rowCount = 0;
int columnCount = 0;
int tempColumn = 0;

//getting array dimensions and creating an array

for (int i = 0; i < s.length(); i++) {
tempColumn++;
if (s.charAt(i) == ' ') {
rowCount++;
if (tempColumn > columnCount) {
columnCount = tempColumn;
}
tempColumn = 0;
}
}

char[][] stringArray = new char[rowCount + 1][tempColumn];

//filling array - not completed

for (int i = 0; i < stringArray.length ; i++) {
for (int j = 0; j < stringArray[i].length ; j++) {
if(s.charAt(j) == ' '){
for (int k = j; k < stringArray[i].length - j ; k++) {
stringArray[i][j] = ' ';
}
}
stringArray[i][j] = s.charAt(j);
System.out.print(stringArray[i][j] + ", ");
}
System.out.println();
}

我在向空单元格插入空格时遇到问题(我不知道 - 我需要一些指针才能实现)。我还停留在 j 循环结束并从开头开始的位置(循环插入到数组的字母从字符串的开头开始 - 我不知道在哪里插入条件以继续迭代字符串长度)。我知道方法的第二部分很糟糕,但我需要帮助来结束它。

最佳答案

首先,用空格作为分隔符分割字符串,这样就可以得到行数。然后搜索最长的子字符串来获取列数。之后,您可以按行插入它们,其中行 n 等于 tmp 数组中的第 n 个位置。 if 语句用“”填充单词后面的每个单元格(如果该单词不是输入字符串中最长的单词)。

public static void TextToArray(String s) {
String[] tmp = s.split(" ");

int rowCount = tmp.length;
int columnCount = 0;

for(int i = 0;i < tmp.length; i++) {
if(tmp[i].length() > columnCount) {
columnCount = tmp[i].length();
}
}

char[][] charArray = new char[rowCount][columnCount];

for(int j = 0; j < rowCount; j ++) {
for(int k = 0;k<columnCount;k++) {
if(k<tmp[j].length()) {
charArray[j][k] = tmp[j].charAt(k);
}
else {
charArray[j][k] = ' ';
}
}
}
}

关于java - java中的句子/字符串到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com