繁体   English   中英

如何将字符串拆分为子字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM