Java 将字符串N拆分为N/X个字符串

Java 将字符串N拆分为N/X个字符串,java,regex,string,split,math,Java,Regex,String,Split,Math,我想要一些关于如何根据算术运算将一个字符串拆分为N个单独字符串的指导;例如string.length()/300 我知道使用分隔符的方法,例如 testString.split(","); 但是,如何在split方法中使用贪婪/不情愿/所有格量词呢 更新:根据请求,提供一个类似的示例,说明我希望实现的目标 String X = "32028783836295C75546F7272656E745C756E742E657865000032002E002E005C0" 导致X/3(或多或少……手

我想要一些关于如何根据算术运算将一个字符串拆分为N个单独字符串的指导;例如string.length()/300

我知道使用分隔符的方法,例如

testString.split(",");
但是,如何在
split
方法中使用贪婪/不情愿/所有格量词呢


更新:根据请求,提供一个类似的示例,说明我希望实现的目标

String X = "32028783836295C75546F7272656E745C756E742E657865000032002E002E005C0"
导致X/3(或多或少……手工完成)


不必担心解释如何将其放入数组,我对此没有问题,只是关于如何在不使用分隔符的情况下拆分,而是一个算术运算

如果每个
字符串都有一个固定的长度,可以使用:

int length=string.length()/300;
Iterable SplitString=拆分器。固定长度(长度)。拆分(字符串);
splitStrings
中的每个
String
的长度将为
length
,最后一个可能例外。最后一个的长度可能介于1和
长度之间


请注意,与
String.split
不同,Guava的
Splitter
是惰性的,在调用
split
时,它首先构建一个
ArrayList
,然后在此基础上使用
toArray()
生成最终的
String[]
结果。字符串的实际拆分和返回是在迭代生成的
Iterable
时完成的。这允许您只对结果进行迭代,而无需分配数据结构并将其全部存储,或将其复制到所需的任何类型的
集合
,而无需通过中间
数组列表
字符串[]
。根据您希望对结果执行的操作,这将大大提高效率。与使用正则表达式相比,您要做的事情也要清楚得多。

不知道,您可能需要一个方法来获取字符串和int时间,并返回字符串列表。伪代码(未检查是否有效):

public String[]splintInto(String splitString,int parts)
{
int-dlength=splitString.length/parts
ArrayList retVal=新的ArrayList()

对于(i=0;iplain old String.substring如何?它对内存友好(因为它重用了原始的字符数组)。

int N=300;
int sublen = testString.length()/N;
String[] subs = new String[N];
for(int i=0; i<testString.length(); i+=sublen){
  subs[i] = testString.substring(i,i+sublen);
}
int N=300;
int sublen=testString.length()/N;
String[]subs=新字符串[N];

对于(inti=0;i您可以通过在
(?你能说得更具体一点吗?如果你能举一个你想要的例子,那会很有帮助。@hal:完成了更新,谢谢你的兴趣!嗯,我不确定这个
add
businessNo,数组在Java中没有方法。我说了,伪代码。这主要是Fantom中数组有add的编程的一部分。再次感谢,嘿!太好了网站顺便给大家举个例子。就拿它来说吧easy@Bart;如果我可以问,你能告诉我任何一个网站吗?从你的回答和问题来看,你可能知道我在哪里可以进一步了解这一点,你似乎非常熟悉:)@Carlucho,如果你是认真的,你需要书架上的那本书。这是关于正则表达式的书。至于在线参考,可能有很多不错的,但这本肯定在前五名中:@Bart Kiers,老兄,你能进一步解释一下这个正则表达式中每个字符的作用吗。谢谢
int length = string.length() / 300;
Iterable<String> splitStrings = Splitter.fixedLength(length).split(string);
public String[] splintInto(String splitString, int parts)
{
   int dlength = splitString.length/parts
   ArrayList<String> retVal = new ArrayList<String>()
   for(i=0; i<splitString.length;i+=dlength)
   {
      retVal.add(splitString.substring(i,i+dlength)

   }
   return retVal.toArray()
}
int N=300;
int sublen = testString.length()/N;
String[] subs = new String[N];
for(int i=0; i<testString.length(); i+=sublen){
  subs[i] = testString.substring(i,i+sublen);
}
aaaaa
bbbbb
ccccc
eeeee
fff
class Main {
  public static void main(String[] args) {
    int N = 5;
    String text = "aaaaabbbbbccccceeeeefff";
    String[] tokens = text.split("(?<=\\G.{" + N + "})");
    for(String t : tokens) {
      System.out.println(t);
    }
  }
}