Porownywanie dwoch stringow

0

witam. Przeszukałem już dużą ilość tematów ale wciąż nie mogę poradzić sobie z prostym porównaniem dwóch stringów.
Jak widać jest to fragment aplikacji serwera, która pobiera od klienta wiadomość po czym wyświetla ją w textArea i zapisuje do pliku tekstowego. Mój problem zaczyna się przy bramce if, która ma na celu wywoływanie jakichś czynności po wpisaniu określonego ciągu znaków. Jako że nie interesuje mnie cały tekst wysłany przez klienta skorzystałem z funkcji substring, żeby wyświetlić tylko to co mnie interesuje i porównać to w pętli. Niestety za każdym razem gdy wpisze poprawny ciąg znaków wyświetla mi elsa tz że napisy są różne. Mam nadzieje, że wystarczająco szczegółowo opisałem swój problem. Z góry dziękuje za pomoc i pozdrawiam.

  private void Nasluchuj(java.awt.event.ActionEvent evt) {                           
      { 
        int port = 5500;
      
       
        try{
           
           
           DatagramSocket socket =  new DatagramSocket(port);
           while(true) 
           {
               
                byte[] buf = new byte[100];
               DatagramPacket packet=new DatagramPacket(buf, buf.length);
               socket.receive(packet );
               String tekst;
               String otwarcie = "test ";
             
            
           
               tekst= (" "+new String (packet.getData()).trim() + " \n");
                String Str = new String(tekst.substring(31,34) );  /// pobiera tekst od  31 do 35 znaku
                
             if(Str.equals(otwarcie))
                {
                    System.out.print("dupa blada");
                }
             else
                 
             {
                 System.out.println("Napisy sa rozne.");
            textArea1.append(" [" +new String (packet.getData()).trim() +  "] \n");
              System.out.print(tekst);
              
         
            
     
                
                
               try (PrintWriter pw = new PrintWriter(new FileOutputStream(new File("plik.txt"),true) ))
                {
                   Scanner skaner= new Scanner(textArea1.getText());
          while (skaner.hasNext()) 
                   {
                       pw.println(skaner.nextLine()+ "\n");
                       }
                   }
           }
             }
        }
       catch(Exception e) {System.err.println(e);}
    }
0

substring(31,34) wycina od 31 do 33 (a nie do 35)

0
  1. nie trzeba Str=new String(tekst.substring(31,34)); wystarczy Str=tekst.substring(31,34);
  2. Str=tekst.substring(31,34); zwróci ci ciąg 3-literowy, jak chcesz porównać z "test " to powinno być: Str=tekst.substring(31,36);

1 użytkowników online, w tym zalogowanych: 0, gości: 1