如何在子字符串和子字符串本身中连续提取字符后检查字符串数组是否包含必需的子字符串

时间:2016-11-10 10:32:40

标签: java android arrays string

我试图处理以下名为" wifis"的字符串数组: -

[SSID: Stephen Joseph, BSSID: ##:a6:##:c0:21:##, capabilities: [WPA2-PSK-CCMP][WPS][ESS], level: -78, frequency: 2442, timestamp: 998653673499, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: TP-LINK_G6D356, BSSID: 30:b5:c2:f5:$$:56, capabilities: [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS], level: -86, frequency: 2452, timestamp: !!!653673417, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: cbtap998852211C:CF:7F:0A:AC:33, BSSID: 5e:cf:7f:0a:ac:91, capabilities: [ESS], level: -46, frequency: 2412, timestamp: 238653673402, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: Tech_D0008214, BSSID: 70:5a:9e:65:30:56, capabilities: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], level: -88, frequency: 2462, timestamp: 238653673422, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: Tech_D0018138, BSSID: 50:09:59:83:ee:05, capabilities: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], level: -91, frequency: 2437, timestamp: 238653673427, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm)]

我希望检查并提取cbtap998852211C:CF:7F:0A:AC:33并将cbtap分隔为另一个字符串,99885221作为另一个bcz将其作为动态8位数,其余1C:CF:7F:0A:AC:33作为另一个字符串。

及其来自String数组的BSSID编号5e:cf:7f:0a:ac:91。 为了检查我已经完成if(Arrays.asList(wifis).contains(confirmation)){确认是cbtap但是如何提取它并完成上述任务。请建议apprach。

1 个答案:

答案 0 :(得分:0)

当您破坏字符串时,必须使用键来查找第一部分。我认为tbtap是关键。

请注意,ip有6个部分,而不是你写的5个部分。

     String s = "[SSID: Stephen Joseph, BSSID: ##:a6:##:c0:21:##, capabilities: [WPA2-PSK-CCMP][WPS][ESS], level: -78, frequency: 2442, timestamp: 998653673499, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: TP-LINK_G6D356, BSSID: 30:b5:c2:f5:$$:56, capabilities: [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS], level: -86, frequency: 2452, timestamp: !!!653673417, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: cbtap998852211C:CF:7F:0A:AC:33, BSSID: 5e:cf:7f:0a:ac:91, capabilities: [ESS], level: -46, frequency: 2412, timestamp: 238653673402, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: Tech_D0008214, BSSID: 70:5a:9e:65:30:56, capabilities: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], level: -88, frequency: 2462, timestamp: 238653673422, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm), SSID: Tech_D0018138, BSSID: 50:09:59:83:ee:05, capabilities: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], level: -91, frequency: 2437, timestamp: 238653673427, hs2Info: <none>, distance: ?(cm), distanceSd: ?(cm)]";
     int idx = s.indexOf("cbtap"); // cbtap998852211C:CF:7F:0A:AC:33,
     if (idx != -1)
     {
        int idx2 = s.indexOf(',',idx);
        s = s.substring(idx,idx2);
        String cbtap = s.substring(0,5);
        idx = s.indexOf(':');
        String id = s.substring(5,idx-2);
        String ip = s.substring(idx-2);
        System.out.println(cbtap+" / "+id+" / "+ip);
     }