将句子/字符串转换为Java中的2D数组

汤姆森:

我需要根据给定的String制作2D数组。行数将是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循环结束并从开头开始的地方(循环插入数组的字母从字符串的开头开始-我不知道在哪里插入条件以继续迭代字符串长度)。我知道方法的第二部分不好,但是我需要帮助结束它。

损伤:

首先,将String按空格分隔为定界符,以便获得行数。然后,搜索最长的子字符串以获取列数。之后,您可以按行插入它们,其中行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] = ' ';
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串数组转换为Java中的字符串

在Java中将句子字符串转换为单词的字符串数组

JAVA将字符串的2d数组转换为Number类型的2d数组

如何将字符串转换为2D整数数组?

将2d char数组转换为1d字符串数组

将2d numpy数组转换为字符串

使用Map将2D字符串数组转换为拆分数字数组

如何将2d整数数组转换为2d字符串数组?

将numpy 2D数组中的字符串元素转换为array并产生3D数组

将String.split数组转换为另一个2D字符串数组

将2d整数数组转换为以逗号python分隔的字符串

将存储在字符串中的数组转换为数组

将字符串中的数组转换为数组

如何在JavaScript中将2D数组转换为2D字符串

如何将记录的2D数组转换为由定界符分隔的多行记录字符串?

将格式化的字符串转换为2D数组

将数组中的数组转换为字符串

将字符串转换为Java中的Int数组

将字符串转换为2D字符数组

将数组转换为句子中的字符串

将字符串复制到2D字符串数组中

在Android中将Textviews的Arraylist转换为2D字符串数组

如何在C#中将2D对象数组转换为2D字符串数组?

将.txt文件转换为2D字符串数组列表

Javascript:将2D Integer数组转换为base64字符串并返回

在 Ruby 中,使用 split 和 map 将字符串输入转换为 2d int 数组(即矩阵)的惯用且干净的改进

将字符串转换为 PostgreSQL 中的数组数组

将 dic 中的 2D 数组的每个元素转换为带有 ' ' 的字符串

将字符串数组转换为php中的数组