2016-12-14 104 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); 

会帮助你;)

相关问题