###問題点
以下のような配列
String str[]={"ABC","DEFG","HI","KLM"}
というのがあったとして、これを
new_str[]={"A","B",・・・"M"}
という風にバラバラにしたいのですが、どうやったらできるのでしょうか・・・・
splitを使うのかなと思って考えてみたのですが、うまくできませんでした。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/23 02:32
2017/08/23 02:32
退会済みユーザー
2017/08/23 02:34
回答4件
0
ベストアンサー
その1:ArrayList使用
java
1String[] str={"ABC","DEFG","HI","KLM"}; 2List<String> list = new ArrayList<>(); 3for (int i = 0; i < str.length; i++) { 4 String[] str2 = str[i].split(""); //これで1文字ずつ分解できる 5 list.addAll(Arrays.asList(str2)); 6} 7String[] result = list.toArray(new String[list.size()]);
その2:Stream利用で1文に
java
1String[] str={"ABC","DEFG","HI","KLM"}; 2String[] result = Arrays.stream(str).flatMap(s -> Arrays.stream(s.split(""))).toArray(String[]::new);
投稿2017/08/23 01:53
編集2017/08/23 01:59総合スコア20651
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/23 01:57
2017/08/23 01:59
2017/08/23 02:04
2017/08/23 02:55
退会済みユーザー
2017/08/26 07:03
0
すべての配列を、1つの文字列に結合してから、1個ずつに分解するのが良いでしょうか。
java
1String[] target = {"ABC", "DEFG", "HI", "KLM"}; 2 3String[] actual = Arrays.asList(target).stream() 4 .collect(Collectors.joining()) 5 .split("");
投稿2017/08/23 06:45
総合スコア12011
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/26 07:02
0
java
1import java.util.ArrayList; 2import java.util.List; 3 4public class Str { 5 public static void main(String[] args) { 6 String str[]={"ABC","DEFG","HI","KLM"}; 7 8 List<String> ret = new ArrayList<String>(); 9 for (String s : str) { 10 for (char c : s.toCharArray()) { 11 ret.add(String.valueOf(c)); 12 } 13 } 14 15 String new_str[] = ret.toArray(new String[0]); 16 17 for (String s : new_str) { 18 System.out.println(s); 19 } 20 } 21}
回しながら List に貯めて toArray で配列に戻します。
投稿2017/08/23 01:40
総合スコア5030
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/26 07:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。