我正在尝试使用split(“#”)打印出字符串的元素,#是分隔元素的字符。我的代码如下(电影是正在打印的字符串):
String[] tokens = movies.split("#");
for (int i = 0; i < tokens.length; i++){
System.out.println(tokens[i]);
}
这是电影的内容:
1 Skyfall#2 The Impossible#
这是打印的内容:
1 Skyfall
2 The Impossible
2
如果我修改上面的代码,所以它循环(tokens.length - 1)次而不是tokens.length,这是打印的:
1 Skyfall
2
这是使字符串存储在电影中的方法。这使用LinkedList。在这种情况下,lineNumbers为true。 numItems是Listnode&lt;串GT;链接列表中的(也就是电影)。
String list = "";
int pos = 0;
ListNode node = head;
if (numItems == 0){
return "Empty";
}
while (pos < numItems){
if (lineNumbers){
list += (pos + 1) + " ";
}
list += node.getData() + "#";
pos++;
if (pos < numItems){
node = node.getNext();
}
}
return list;
我无法弄清楚为什么打印这个额外的号码。有人可以帮忙吗?
答案 0 :(得分:1)
您尚未发布完整代码,因此很难准确。但你的分裂很好。
我打赌问题是因为lineNumbers
和pos
答案 1 :(得分:1)
在此代码中
list += (pos + 1) + " ";
被执行两次。请检查你的条件是否有麻布。这应该是假的。
在判断pos ++后执行第二个条件
if (pos < numItems){
不满意而且中断了。
所以最终你有
1 Skyfall#2 The Impossible#2#