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

时间:2015-04-04 20:26:04

标签: java android string

我想将字符串"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());
        }
    }
}

3 个答案:

答案 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)可能无法解析为整数的事实。