将短语拆分为多维字符数组
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
?
句子的单个字符串。非常感谢您一直以来的帮助!以上是关于将短语拆分为多维字符数组的主要内容,如果未能解决你的问题,请参考以下文章