如何分隔此字符串:
"thisisanexampleforthisproblemicantsolvetestes"
到此数组:
{"thisi","sanex","ampl","efor","this","prob","lemi","cant","solv","etes","tes"}
我想将String中的前10个字母分成数组中的2个元素,其余应该每4个字母分隔为一个数组中的一个元素。 我希望你能帮助我。我一整天都在尝试,但仍然没有解决
答案 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;
}