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));
}
}
}
您有幾種選擇。最簡單的就是使用String#substring()' – TheLostMind
謝謝。我會嘗試 – valentina
另一種方法是使用String#replaceAll方法。 –