2016-12-14 78 views
0

我想從SSID獲取信號強度。 我的輸出是:SSID名稱+信號
例如:技嘉92%
但我想只能輸出:GYGABYTE 92如何從輸出(%)中刪除我的最後一個字符?

我想知道我可以從我的輸出(%)刪除最後一個字符。

請幫我解決它。

這是我的代碼:

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

    } 

} 

}

+3

您有幾種選擇。最簡單的就是使用String#substring()' – TheLostMind

+0

謝謝。我會嘗試 – valentina

+0

另一種方法是使用String#replaceAll方法。 –

回答

0

明確了:

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

會幫助你;)

相關問題