0

I am trying to get signal strength from SSID. My output is: ssid name + signal
Example: GIGABYTE 92%
But i want to output only: GYGABYTE 92

I want to know how can i remove last character from my output (%).

Please help me to solve it.

This is my code:

  ArrayList<String>ssids=new ArrayList<String>();
     ArrayList<String>signals=new ArrayList<String>();
     ProcessBuilder builder = new ProcessBuilder(
             "cmd.exe", "/c", "netsh wlan show all");
     builder.redirectErrorStream(true);
     Process p = null;
    try {
        p = builder.start();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
     String line;
     while (true) {
         try {
            line = r.readLine();

         if (line.contains("SSID")||line.contains("Signal")){
             if(!line.contains("BSSID"))
                 if(line.contains("SSID")&&!line.contains("name")&&!line.contains("SSIDs"))
                 {
                     line=line.substring(8);
                     ssids.add(line);

                 }
                 if(line.contains("Signal"))
                 {
                     line=line.substring(30);
                     signals.add(line);

                 }

                 if(signals.size()==7)
                 {
                     break;
                 }

         }
         } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

     }
     for (int i=1;i<ssids.size();i++)
     { 

         System.out.println(ssids.get(i)+"    "+signals.get(i));

     }

}

}

valentina
  • 1
  • 1

1 Answers1

0

Clearly a :

line = line.substring(0,line.length() - 1);

will help you ;)

azro
  • 53,056
  • 7
  • 34
  • 70