所以这里的想法是我将.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方法。
答案 0 :(得分:0)
对于可以轻松迭代完成的事情,请不要使用递归。在堆栈和调用帧方面递归是很昂贵的:一个很长的字符串可能会产生StackOverflowError。
我建议您查看java.lang.String
的标准方法indexOf:
答案 1 :(得分:0)
一个很好的选择是正则表达式。 你可以分开考虑逗号的单词,','作为分隔符
<强>代码强>
String[] nextItem(String data) {
String[] words=data.split(",");
return words;
}
这将返回一个字符串数组,这是您输入字符串中的单词。然后你可以根据需要使用数组。
希望它有所帮助;)
答案 2 :(得分:0)
处理附带self
函数,它完全符合您的描述。
split()
在幕后它使用String men = "Chernenko,Andropov,Brezhnev";
String[] list = split(men, ',');
// list[0] is now "Chernenko", list[1] is "Andropov"...
函数,如H. Sodi's answer,但您应该使用此函数而不是定义自己的函数。