解析字符串以查找下一个分隔符 - 处理

时间:2017-11-18 23:04:21

标签: string parsing processing

所以这里的想法是我将.csv带入一个字符串,每个值都需要存储到一个变量中。我不确定如何正确解析字符串来执行此操作。

我的想法是一个看起来像

的功能
final char delim = ',';

int nextItem(String data, int startFrom) {
    if (data.charAt(startFrom) != delim) {
        return data.charAt(startFrom)
    } else {
        return nextItem(data, startFrom + 1);
    }
}

所以,如果我传递了类似

的内容
    nextItem("45,621,9", 0);

返回45

如果我通过了

    nextItem("45,621,9", 3);

它会返回621

我不确定我是否有正确的设置是递归的,但我也可以使用For循环,我认为只有真正的规定是我不能使用Substring方法。

3 个答案:

答案 0 :(得分:0)

对于可以轻松迭代完成的事情,请不要使用递归。在堆栈和调用帧方面递归是很昂贵的:一个很长的字符串可能会产生StackOverflowError。

我建议您查看java.lang.String的标准方法indexOf

答案 1 :(得分:0)

一个很好的选择是正则表达式。 你可以分开考虑逗号的单词,','作为分隔符

<强>代码

String[] nextItem(String data) {
    String[] words=data.split(",");  
    return words;     
}

这将返回一个字符串数组,这是您输入字符串中的单词。然后你可以根据需要使用数组。

希望它有所帮助;)

答案 2 :(得分:0)

处理附带self函数,它完全符合您的描述。

来自the reference

split()

在幕后它使用String men = "Chernenko,Andropov,Brezhnev"; String[] list = split(men, ','); // list[0] is now "Chernenko", list[1] is "Andropov"... 函数,如H. Sodi's answer,但您应该使用此函数而不是定义自己的函数。