Java 获取上一个值之前的缓冲读取器套接字
在bufferreader套接字中的最后一个元素之前,我想得到一个问题Java 获取上一个值之前的缓冲读取器套接字,java,sockets,Java,Sockets,在bufferreader套接字中的最后一个元素之前,我想得到一个问题 message = bufferedReader.readLine() 我想得到这个输出 示例bufferreader消息包含:[Ajay、Becky、Chaitanya、Dimple、Rock] 在最后一个元素之前是: 酒窝 因为list.size()-1是最后一个元素 因此,list.size()-2是前面的最后一个元素 在数组或集合中,索引开始0,因此最后一个元素是数组/集合-1的大小 关于第二个问题: 我在soc
message = bufferedReader.readLine()
我想得到这个输出
示例bufferreader消息包含:[Ajay、Becky、Chaitanya、Dimple、Rock]
在最后一个元素之前是:
酒窝
因为list.size()-1
是最后一个元素因此,
list.size()-2
是前面的最后一个元素
在数组或集合中,索引开始0
,因此最后一个元素是数组/集合-1
的大小
关于第二个问题: 我在socket bufferreader中有问题 我想在留言之前得到最后一条 message=bufferedReader.readLine() 你们看的不是留言,而是这里的台词。如果要识别前一行,可以假设至少有2个元素要读取
String[] lastTwoElements= new String[2];
String currentLine;
while ((currentLine=br.readLine()) != null) {
String oldLastElement = lastTwoElements[1];
lastTwoElements[1] = currentLine;
lastTwoElements[0] = oldLastElement;
}
lastTwoElements[0]
是上一个最后读取行。
lastTwoElements[1]
是最后一个读取行。如果(al!=null&&!al.isEmpty()){
if (al != null && !al.isEmpty()) {
System.out.print("ArrayList contains: ");
for(int i =0; i <a1.size(); i++){
System.out.print(a.get(i) + ", ");
}
System.out.println("\nbefore Last element is: "+a1.get(a1.siz2() - 2));
}
System.out.print(“ArrayList包含:”);
对于(int i=0;i)它是一个基于零的索引,因此如果大小为10,则第一个元素位于位置0,最后一个元素位于位置10-1或9,因此最后一个元素位于位置10-2,因此索引8.Exception位于线程“thread-0”java.lang.ArrayIndexOutOfBoundsException:-1 at java.util.ArrayList.elementData(ArrayList.java:418)at java.util.ArrayList.get(ArrayList.java:431)位于ThreadSocket.run(ThreadSocket.java:44)通过此修改,这应该是不可能的。只需将您的if
语句替换为我在您的代码中发布的if
语句,您就不会引用BufferedReader
。我只是向您提出了一个想法。我编辑了代码。如果它不能解决您的问题,您可以按照Tom的建议编辑您的问题或关闭此问题nd打开一个新问题。线程“thread-0”中出现异常java.lang.NumberFormatException:Null虽然此代码片段可能会解决此问题,但它不会解释为什么或如何回答此问题。请注意,这确实有助于提高您文章的质量。请记住,您是在为将来的读者回答此问题,而这些人可能不知道您提出代码建议的原因。标记者/审阅者:
if (al != null && !al.isEmpty()) {
System.out.print("ArrayList contains: ");
for(int i =0; i <a1.size(); i++){
System.out.print(a.get(i) + ", ");
}
System.out.println("\nbefore Last element is: "+a1.get(a1.siz2() - 2));
}