[英]How can I split a string into substrings?
我想将字符串"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());
}
}
}
您可以使用正则表达式一次完成所有操作:
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.
}
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
}
}
您不必显式地拆分它(就调用String.split
),例如
if (s.startsWith("KD-")) {
int v = Integer.parseString(s.substring(3));
if (v >= 400 && v <= 500) {
// Do whatever.
}
}
您将需要处理s.substring(3)
可能无法解析为整数的事实。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.