为了账号安全,请及时绑定邮箱和手机立即绑定

将数组中的字符串转换为 2d 数组中的单词

将数组中的字符串转换为 2d 数组中的单词

DIEA 2022-09-07 16:06:31
我有一个在屏幕上显示歌词的程序。每行歌词都存储在一个数组中。现在,从这个开始,我想创建一个2d数组,其中只有个人单词组织成这样的行:String[] lyrics = {"Line number one", "Line number two"};String[][] words = {{"Line","number","one"},{"Line", "number", "two"}};我以为它只是一个简单的双精度循环,它只是获取当前字符串,去掉空格,并将单词存储在数组中。但是,当我尝试此操作时,我得到的类型不匹配。public static void createWordArray() {        for(int i=0; i<=lyrics.length; i++) {            for(int j =0; j<=lyrics[i].length(); i++) {                words[i][j] = lyrics[i].split("\\s+");            }        }
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

内部 for 循环不是必需的。


public class CreateWordArray {

    static String[]  lyrics = {"Line number one", "Line number two"}; 

    static String[][] words = new String[lyrics.length][];


    public static void createWordArray() {

        for(int i=0; i<lyrics.length; i++) {

                words[i] = lyrics[i].split("\\s+");

        }

    }


   public static void main(String[] s) {


       createWordArray();

       System.out.println(Arrays.deepToString(words));


   }

}

输出:

//img1.sycdn.imooc.com//63185126000172d003870094.jpg


查看完整回答
反对 回复 2022-09-07
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

下面是使用流的示例解决方案。


public class WordArrayUsingStreams {

    public static void main(String[] args) {

        String[] lyrics = {"Line number one", "Line number two"};


        String[][] words = Arrays.stream(lyrics)

              .map(x -> x.split("\\s+"))

              .toArray(String[][]::new);


        System.out.println(Arrays.deepToString(words));

    }

}

输出:


[[Line, number, one], [Line, number, two]]


查看完整回答
反对 回复 2022-09-07
?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可以使用 列表 ,这是非常动态且易于控制的。


    String[] lyrics = {"Line number one", "Line number two"};


    //Create a List that will hold the final result

    List<List<String>> wordsList = new ArrayList<List<String>>();


    //Convert the array of String into List

    List<String> lyricsList = Arrays.asList(lyrics);


    //Loop over the converted array

    for(String s : lyricsList )

    {

        //Split your string

        //convert it to a list

        //add the list into the final result

        wordsList.add(Arrays.asList(s.split("\\s+")));

    }


        //System.out.println(wordsList.toString());


查看完整回答
反对 回复 2022-09-07
  • 3 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信