我有一个长文本,我想分成几个小句子。以下是我的文本。
我尝试了Count words in a string method?,但是给出的解决方案是拆分字符串return trim.split("\\s+").length;
。在我的文字中,我没有任何空格。
సోషలిజం,అనే,మాటను,గబ్బు,పట్టించడమే,కాంగ్రెసు,వారి,వ్యూహమనీ,అంతవరకూ,ప్రజలలో,సోషలిజం,యెడవున్న,అభిమానాన్ని,ఎక్స్ప్లాయిట్,చెయ్యడం,దాని,ఎత్తుగడ,అనీ,అంటే,అంటే,ఓ,మాటు,నా,మీద ,గుర్తుందా。
我知道split()用于分割字符串。但是我不知道如何在文本上方分割,因为没有空格或其他正则表达式可以分割。
以下代码可用于拆分文本
String string = "1234,56,789,10,1111111,1111112,12";
char[] ch = string.toCharArray();
int comma_limit = 3;
int comma_count = 0;
for(int i=0;i<ch.length;i++)
if (ch[i] == ',') {
comma_count = comma_count + 1;
if (comma_count % comma_limit == 0)
{
ch[i] = '.';
System.out.println(ch);
}
}
答案 0 :(得分:1)
使用带有逗号分隔符的split方法,它将返回分隔字符串的数组,然后使用length方法,获取其大小
System.out.println(yourString.split(",").length);
答案 1 :(得分:1)
static IEnumerable<string> Split(string str, int chunkSize)
{
return Enumerable.Range(0, str.Length / chunkSize)
.Select(i => str.Substring(i * chunkSize, chunkSize));
}
您需要检查极端情况。
答案 2 :(得分:0)
在拆分中,使用“,”根据逗号字符进行拆分。 return trim.split(",").length;
答案 3 :(得分:0)
如果您想将其拆分为特定的部分,请使用它。
String text = "SAMPLEs"; // <- this will contain the large text
int numberOfParts = 2; // the number of split parts
int partLength = text.length() / numberOfParts;
ArrayList<String> parts = new ArrayList<>();
for (int i = 0; i < numberOfParts; i++) {
int start = partLength * i;
int end = start + partLength;
parts.add(text.substring(start, end));
if (text.length() - end < partLength) {
parts.add(text.substring(end, text.length()));
}
}
for (int i = 0; i < parts.size(); i++) {
System.out.println("PART " + i + " contains : " + parts.get(i));
}
结果:
PART 0 contains : SAM
PART 1 contains : PLE
PART 2 contains : s
答案 4 :(得分:0)
您可以使用逗号分隔
String text = "సోషలిజం,అనే,మాటను,గబ్బు,పట్టించడమే,కాంగ్రెసు,వారి,వ్యూహమనీ,అంతవరకూ,ప్రజలలో,సోషలిజం,యెడవున్న,అభిమానాన్ని,ఎక్స్\u200Cప్లాయిట్,చెయ్యడం,దాని,ఎత్తుగడ,అనీ,అంటే,ఓ,మాటు,నా,మీద,పడిపోయావు,గుర్తుందా.";
String[] lines = text.split(",");
for (int i = 0; i < lines.length; i++) {
System.out.println("SENTANCE " + i + " : "+ lines[i]);
}
答案 5 :(得分:0)
使用String Builder代替字符串
StringBuilder sb = new StringBuilder();
sb.append("సోషలిజం,అనే,మాటను,గబ్బు,పట్టించడమే,కాంగ్రెసు,వారి,వ్యూహమనీ,అంతవరకూ,ప్రజలలో,సోషలిజం,యెడవున్న,అభిమానాన్ని,ఎక్స్ప్లాయిట్,చెయ్యడం,దాని,ఎత్తుగడ,అనీ,అంటే,ఓ,మాటు,నా,మీద,పడిపోయావు,గుర్తుందా");
int totalString = sb.toString().splitby(",").lenght();
答案 6 :(得分:0)
这是您要求的子字符串示例。
String longText = "సోషలిజం,అనే,మాటను,గబ్బు,పట్టించడమే,కాంగ్రెసు,వారి,వ్యూహమనీ,అంతవరకూ,ప్రజలలో,సోషలిజం,యెడవున్న,అభిమానాన్ని,ఎక్స్\u200Cప్లాయిట్,చెయ్యడం,దాని,ఎత్తుగడ,అనీ,అంటే,ఓ,మాటు,నా,మీద,పడిపోయావు,గుర్తుందా.";
int longTextLength = longText.length();
int partLength = (int) longTextLength / 3;
String part1 = longText.substring(0, partLength);
String part2 = longText.substring(partLength, 2*(partLength));
String part3 = longText.substring(2*(partLength), longTextLength);
答案 7 :(得分:0)
您的要求让我感到困惑。假设您要实现某种自动换行,可以执行以下操作。这可能不是最佳的实现方式,但它是一种实现方式。
divideString("This is my sentence! I would like to split this into 3 Strings with about the same length.", 3);
public static void divideString(String raw, int numberOfDivides) {
int charsPerString = raw.length()/numberOfDivides;
String[] refined = new String[charsPerString];
for(int i=1; i < (raw.length()/charsPerString)+1; i++) {
refined[i] = raw.substring((charsPerString*i)-charsPerString, charsPerString*i);
System.out.println(refined[i]);
}
}
将输出以下内容:
This is my sentence! I would l
ike to split this into 3 Strin
gs with about the same length.
答案 8 :(得分:0)
一旦在循环中获得3个字符串,请选中此选项,您可以增加拆分计数。
public void splitStr(){
String str = "";
String[] split_str = str.split(",");
int len = split_str.length;
int split_len = len/3;
for (int i = 0; i< len; i++){
String f1 ="";
if(i == split_len){
// first string
f1 = split_str[i];
// You will get 3 f1 strings
split_len += split_len+ i;
}
}
}