【问题标题】: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} };

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

非常感谢大家的帮助!

【问题讨论】:

    标签: java arrays string multidimensional-array char


    【解决方案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
    • 句子的单个字符串。非常感谢您一直以来的帮助!
    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多