Java 如何检测一个元素是否是数组中的最后一个元素?
下面的代码根据字符串的位置拆分字符串,然后将其放入ArrayList中 因此,例如,如果字符串是Java 如何检测一个元素是否是数组中的最后一个元素?,java,arrays,loops,arraylist,foreach,Java,Arrays,Loops,Arraylist,Foreach,下面的代码根据字符串的位置拆分字符串,然后将其放入ArrayList中 因此,例如,如果字符串是“谁陷害了Roger Rabbit?”,则fragmentMessage将每隔8个字符分割消息 所以ArrayList将如下所示:[谁是Fram,ed Roger,Rabbit?] ArrayList的元素如下所示: ArrayList元素0:Who Fram ArrayList元素1:ed Roger ArrayList元素2:Rabbit? 然后,在主方法中,我有一个for-each循环,它在Ar
“谁陷害了Roger Rabbit?”
,则fragmentMessage
将每隔8个字符分割消息
所以ArrayList将如下所示:[谁是Fram,ed Roger,Rabbit?]
ArrayList的元素如下所示:
Who Fram
ed Roger
Rabbit?
import java.util.ArrayList;
导入java.util.List;
公共类LastElement{
公共静态void main(字符串[]args){
String message=“谁陷害了兔子罗杰?”;
for(字符串片段:fragmentMessage(消息)){
/*
*如果“fragment”是数组的最后一个元素,那么执行一些操作
*/
}
}
私有静态列表碎片消息(字符串消息){
List fragmentedMessage=new ArrayList();
for(int i=0;i
没有直接的方法可以知道foreach循环中是否有列表的最后一个条目
最简单的方法是使用索引循环
诸如此类:
List<String> fragmentMessage = fragmentMessage(message);
for (int i = 0; i < fragmentMessage.size(); i++) {
String fragment = fragmentMessage.get(i);
/*
* If "fragment" is the last element of the array, then do something
*/
if (i == fragmentMessage.size()-1) {
}
}
没有直接的方法可以知道foreach循环中是否有列表的最后一个条目
最简单的方法是使用索引循环
诸如此类:
List<String> fragmentMessage = fragmentMessage(message);
for (int i = 0; i < fragmentMessage.size(); i++) {
String fragment = fragmentMessage.get(i);
/*
* If "fragment" is the last element of the array, then do something
*/
if (i == fragmentMessage.size()-1) {
}
}
你有几个选择
使用迭代器:
使用这种方法,如果您在列表中使用字符串,请注意,如果有重复项,这将不是非常准确
使用标准for循环跟踪索引:
for(int i=0;i
您有几个选择
使用迭代器:
使用这种方法,如果您在列表中使用字符串,请注意,如果有重复项,这将不是非常准确
使用标准for循环跟踪索引:
for(int i=0;i
我的最终解决方案是这样的。它基于@k5.答案,功劳归于他/她/其他人
我使用if-else语句来仅针对最后一个元素
List<String> fragmentMessage = fragmentMessage(message);
for (int i = 0; i < fragmentMessage.size(); i++) {
String fragment = fragmentMessage.get(i);
if (message.isEmpty()) { // Only if message == "".
System.out.println(createFrame(message));
} else if (i == fragmentMessage.size() - 1) { // Last element of the array.
System.out.println(createLastFrame(fragment));
} else {
System.out.println(createFrame(fragment)); // Only if message is not the last message.
}
}
List fragmentMessage=fragmentMessage(消息);
对于(int i=0;i
我的最终解决方案是这样的。它基于@k5.答案,功劳归于他/她/其他人
我使用if-else语句来仅针对最后一个元素
List<String> fragmentMessage = fragmentMessage(message);
for (int i = 0; i < fragmentMessage.size(); i++) {
String fragment = fragmentMessage.get(i);
if (message.isEmpty()) { // Only if message == "".
System.out.println(createFrame(message));
} else if (i == fragmentMessage.size() - 1) { // Last element of the array.
System.out.println(createLastFrame(fragment));
} else {
System.out.println(createFrame(fragment)); // Only if message is not the last message.
}
}
List fragmentMessage=fragmentMessage(消息);
对于(int i=0;i
可以使用迭代器,而不是for
循环,迭代器具有hasNext()
方法。或者使用索引的传统for循环。可能有更好的方法,这取决于您实际想要实现的目标。但是您没有说…可能的重复而不是for
循环,您可以使用迭代器,它有一个hasNext()
method。或者是传统的for循环,它使用索引。可能有更好的方法,这取决于您实际想要实现的目标。但是您没有说……您考虑到最后一个元素也是空的情况下,可能会出现重复?@k5_u我看不出最后一个元素在我的代码中可能是空的。有什么方法可以私下发送给您吗u我的类?你考虑过最后一个元素也是空的情况吗?@k5_u我看不出最后一个元素在我的代码中是空的。我有什么方法可以私下把我的类发送给你吗?
for (String str :
fragments) {
System.out.println(str);
// If this item is the last in the list
if (fragments.indexOf(str) == fragments.size() - 1) {
System.out.println("All done!");
}
}
for (int i = 0; i < fragments.size(); i++) {
System.out.println(fragments.get(i));
if (i == fragments.size() - 1) {
System.out.println("All done!");
}
}
List<String> fragmentMessage = fragmentMessage(message);
for (int i = 0; i < fragmentMessage.size(); i++) {
String fragment = fragmentMessage.get(i);
if (message.isEmpty()) { // Only if message == "".
System.out.println(createFrame(message));
} else if (i == fragmentMessage.size() - 1) { // Last element of the array.
System.out.println(createLastFrame(fragment));
} else {
System.out.println(createFrame(fragment)); // Only if message is not the last message.
}
}