提取最多1000个逗号的子字符串

时间:2011-12-01 04:45:54

标签: java

我有一个字符串(逗号分隔)

例如:

a,bgf,sad,asd,rfw,fd,se,sdf,sdf,...

我需要的是提取一个直到第1000个逗号的子字符串。

如何在Java中实现这一目标?

6 个答案:

答案 0 :(得分:1)

这样做的一种有效方法是使用indexof(int ch,int fromIndex)intead使用split(String regex,int limit)或split(String regex),特别是如果给定的字符串很长。 这可以这样做

[pseudocode]

asciiCodeForComma = 0x2c
nextIndex=0
loop 1000 times
 nextIndex= csv.indexof(asciiCodeForComma , nextIndex)

requiredSubString = csv.subString(0, nextIndex)

答案 1 :(得分:0)

String csv = "some,large,string";
String[] parts = csv.split(",");
String thousandthElement = null; // the default value if there are less than 1000
if (parts.length > 999)
    thousandthElement = parts[999];

答案 2 :(得分:0)

您可以使用逗号作为分隔符的StringTokenizer,然后循环nextToken()1000次。

答案 3 :(得分:0)

我认为他要求所有1000元素..这应该可以解决你的问题。理解然后复制粘贴,因为这是你的作业:)

public static void main(String[] args) {
        // TODO Auto-generated method stub
         String samplecsv = "a,bgf,sad,asd,rfw,fd,se,sdf,sdf,";
         String[] splitedText = samplecsv.split(",");
         StringBuffer newtext = new StringBuffer();
         for (int i = 0; i < 3; i++) {
             newtext.append(splitedText[i]);
        }
         System.out.println(newtext);
    }

答案 4 :(得分:0)

因此,要解决此问题,您需要了解如何从分隔符分隔的输入流中提取字符串。然后对N个字符串的情况执行此操作是微不足道的。为单个记录执行此操作的伪代码如下:

function parse(inputValue, delimiter)  
{  
   return inputValue.split(delimiter)  
}  

现在,对于存在N个inputValues的情况,这同样是微不足道的。

function parse(inputValues, delimiter)  
{
  foreach inputValue in inputValues  
     returnValue.append(parse(inputValue,delimiter)  
  return returnValue    
}

答案 5 :(得分:0)

实际上,通过将第二个参数放入split中,可以实现内置功能。如果您真正想要的是在第1000个逗号之前的整个字符串,您仍然可以使用此函数,但您必须连接数组的第一部分。

public static void main(String[] args){
    String sample = "s,a,m,p,l,e";
    String[] splitSample = sample.split(",",1000);
    if (splitSample.length == 1000)
        System.out.println(splitSample[1000]);
    else
        System.out.println("Your error string");
}