将短语拆分为多维字符数组

Posted

技术标签:

【中文标题】将短语拆分为多维字符数组【英文标题】:Split a phrase into multidimesional array of characters 【发布时间】:2021-12-24 09:50:31 【问题描述】:

我有一个字符串,其中包含用户输入的短语:

import java.util.Scanner;
public class eldertonguetranslator

    public static void main(String[] args)
    
        Scanner sc = new Scanner(System.in);
        String inputtext;
        System.out.println("Enter you text: ");
        inputtext = sc.nextLine();
    

现在该字符串的示例值为:

lorem ipsum

我将如何将该字符串的每个单词放入一个单独的字符数组中?

原来是这样的:

char[][] splittext =  l, o , r, e, m, i, p, s, u, m ;

请记住,短语中的单词数以及该单词中包含多少个字母每次都会改变。

非常感谢大家的帮助!

【问题讨论】:

【参考方案1】:

试试这个:

char[][] wordsAsChars = Arrays.stream(str.split(" "))
  .map(String::toCharArray)
  .toArray(char[][]::new);

这个streams 是通过在空格上拆分输入找到的单词,将每个单词转换为其等效的char[],然后将char[] 收集到char[][]

String#split() 接受一个 regex(在这种情况下只是一个纯空格字符)并返回一个 String[]

Arrays.stream() 流式传输数组的元素。


这个过程的逆过程,即取一个char[][]并产生一个句子,是:

String sentence = Arrays.stream(wordsAsChars)
  .map(String::new)
  .collect(Collectors.joining(" "));

.map(String::new) 调用 String​(char[] value) 构造函数。

joining(" ") 连接 String 流的所有元素,用空格分隔它们

【讨论】:

非常感谢,效果很好!只是出于兴趣,您能否简单地解释一下这是如何工作的?我喜欢尝试学习一段代码是如何工作的,而不是仅仅复制和粘贴它:) 你是个传奇人物!解释很好! 跟进问题:我将如何扭转这一局面?即this 的输出是一个字符串的值。 您的意思是将句子的char[][] 转换为String[] 还是单个String 句子的单个字符串。非常感谢您一直以来的帮助!

以上是关于将短语拆分为多维字符数组的主要内容,如果未能解决你的问题,请参考以下文章

我需要在拆分方法c#之后将字符串分配给数组列

c ++:解析包含表达式“访问多维数组”的字符串

将多维数组拆分为更小的数组

将多维数组格式的查询字符串解析为实际数组

将字符串拆分为字符串数组[重复]

将数组拆分为字符串