将字符串分隔为数组

时间:2019-11-23 18:02:39

标签: java arrays string

如何分隔此字符串:

"thisisanexampleforthisproblemicantsolvetestes"

到此数组:

{"thisi","sanex","ampl","efor","this","prob","lemi","cant","solv","etes","tes"}

我想将String中的前10个字母分成数组中的2个元素,其余应该每4个字母分隔为一个数组中的一个元素。 我希望你能帮助我。我一整天都在尝试,但仍然没有解决

3 个答案:

答案 0 :(得分:1)

假设输入字符串length >= 10,您可以使用流来执行以下操作:

String str = "thisisanexampleforthisproblemicantsolvetestes";
String[] splited = Stream.of(str.substring(0, 10).split("(?<=\\G.{5})"),
                             str.substring(10).split("(?<=\\G.{4})"))
                         .flatMap(e -> Arrays.stream(e))
                         .toArray(String[]::new);
System.out.println(Arrays.toString(splited));

其中正则表达式"(?<=\\G.{n})"用于在每个nth字符处拆分字符串

答案 1 :(得分:1)

更简单易懂: 结果:thisi,sanex,ampl,efor,this,概率,lemi,cant,solv,etes,tes

public static List<String> strangeThingsDo(String str)
{
    List<String> li = new ArrayList<>(); 
    int len = str.length();
    if (len <= 5)
    {
         li.add(str); 
         return li;
    }
    if (len <= 10)
    {
     li.add(str.substring(0,5));
     li.add(str.substring(5));
     return li;
    }
    li.add(str.substring(0,5));
    li.add(str.substring(5,10));
    String s,rest = str.substring(10);

    int restlen = rest.length();
    int end = 0;
    for (int i = 0; i < restlen;i += 4)
    {
          end = i + 4;
          if (end > restlen) 
          { s = rest.substring(i); 
            li.add(s); 
            break; 
          }
          s = rest.substring(i,end);
          li.add(s);
    }
    System.out.println("---: " + li );
    return li;
}

答案 2 :(得分:0)

以下代码将向您展示如何按字符数分割字符串。我们创建一个名为splitToNChars()的方法,该方法带有两个参数。第一个参数是要拆分的字符串,第二个参数是拆分大小。 此splitToNChars()方法将在for循环中拆分字符串。首先,我们将创建一个List对象,该对象将存储拆分字符串的一部分。接下来,我们做一个循环,从文本中获取定义大小的子字符串,并将其存储在List中。读取整个字符串后,我们使用List的toArray()方法将List对象转换为String数组。

for (int j = 0; j < denom; j++)
    xValue *= xValue;

}

相关问题