Java 获取上一个值之前的缓冲读取器套接字

Java 获取上一个值之前的缓冲读取器套接字,java,sockets,Java,Sockets,在bufferreader套接字中的最后一个元素之前,我想得到一个问题 message = bufferedReader.readLine() 我想得到这个输出 示例bufferreader消息包含:[Ajay、Becky、Chaitanya、Dimple、Rock] 在最后一个元素之前是: 酒窝 因为list.size()-1是最后一个元素 因此,list.size()-2是前面的最后一个元素 在数组或集合中,索引开始0,因此最后一个元素是数组/集合-1的大小 关于第二个问题: 我在soc

在bufferreader套接字中的最后一个元素之前,我想得到一个问题

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));
}