我想将字符串"KD-435"
拆分为两个子字符串,以检查第一个子字符串"KD-"
是否以下列字符"KD-"
开头,第二个子字符串是数字beteewn "400-500"
。
我有以下方法,我想在此位置if (ssid.startsWith("KD-"))
private void check_wifi_available() {
WifiManager wifiManager = (WifiManager) this
.getSystemService(this.WIFI_SERVICE);
final List<ScanResult> results = wifiManager.getScanResults();
if (results != null) {
List<ScanResult> updatedResults = new ArrayList<ScanResult>();
// pick wifi access ponits which begins with these "KD" characters.
for (int i = 0; i < results.size(); i++) {
String ssid = results.get(i).SSID;
if (ssid.startsWith("KD")) {
updatedResults.add(results.get(i));
}
}
if (updatedResults.size() > 0) {
String a = calculateBestAccessPoint(updatedResults);
textWifi.setText(a.toString());
}
}
}
答案 0 :(得分:2)
您可以使用正则表达式一次性完成所有操作:
Pattern p = Pattern.compile("^KD-(4[0-9]{2}|500)$");
Matcher m = p.matcher("KD-411"); // Replace with your string.
if (m.matches()) {
// It worked!
} else {
// It didn't.
}
答案 1 :(得分:0)
String [] parts = ssid.split("-");
if(parts.length == 2)
{
String firstPart = parts[0]; //That's KD
String secondPart = parts[1]; //That's 435
if(firstPart.equals("KD")&&Integer.parseInt(secondPart)>=400&&Integer.parseInt(secondPart)<=500)
{
//do whatever you want
}
}
答案 2 :(得分:0)
您不一定需要明确拆分它(在调用String.split
的意义上),例如。
if (s.startsWith("KD-")) {
int v = Integer.parseString(s.substring(3));
if (v >= 400 && v <= 500) {
// Do whatever.
}
}
您需要处理s.substring(3)
可能无法解析为整数的事实。