2016-08-20 63 views
-7

我想創建一個函數,該字符串在android上返回一些匹配字。根據某些字符獲取字符串的函數

例如:

String data = "nama:jono/umur:19/alamat:new york/phone:08123456"; 
function searchword(String full, String first, String last) 
{ 
/******/ 
coding 
/******/ 
return word; 
} 

,如果我想獲得 '非農產品市場準入',該功能只需要數據,第一個字符&最後一個字符。

例如:

function searchword(data, "nama:", "/") 
{ 
/******/ 
coding 
/******/ 
return word; 
} 
+3

究竟什麼是你的問題? –

+0

我想知道腳本來做這樣的功能 'function cariKata($ s,$ keyword1,$ keyword2){ \t $ l1 = strlen($ keyword1); \t $ x1 = strpos($ s,$ keyword1); \t $ x2 = strpos($ s,$ keyword2,$ x1 + $ l1); \t $ l = $ x2 - ($ x1 + $ l1); \t return substr($ s,$ x1 + $ l1,$ l); }' 這就是PHP的功能,我不知道類似的功能,如android –

回答

1

您可以使用下面它採用String#indexOfString#substring方式,

public class Test { 

    public static String searchWord(String data, String first, String last) { 
     //Some contains and null checks are needed here 
     int start = data.indexOf(first) + first.length(); 
     int end = data.indexOf(last, start); 
     return data.substring(start, end); 
    } 

    public static void main(String[] args) { 
     String data = "nama:jono/umur:19/alamat:new york/phone:08123456";; 
     System.out.println(searchWord(data, "nama:", "/")); 
    } 

} 

輸出

jono 
1

你可以從字符串的方法得到它。 它會告訴你,字符串包含該字或不。

your_string.contains("YOUR_WORD"); 

這返回true或false。然後你可以管理它。

+0

中的strpos我不想知道如果字符串包含該字或不。因爲我不知道這個詞。我知道的方式是使用split或stringtokenizer。在PHP我使用這個函數'功能cariKata($ s,$ keyword1,$ keyword2){$ l1 = strlen($ keyword1); $ x1 = strpos($ s,$ keyword1); $ x2 = strpos($ s,$ keyword2,$ x1 + $ l1); $升= $ X2 - ($ X1 + $ L1);返回substr($ s,$ x1 + $ l1,$ l); }' –

2

我在我的智能手機,但我Unterstand你想要什麼:

String searchword(data,str,lastString){ 
String[] attr = data.split(lastString); 
for(String attribute: attr){ 
String[] parts = attribute.split(':'); 
if(parts[0].equals(Str) 
return Parts[1]; 

} 
return Null; 
} 

也許犯了錯誤我對我的智能手機就像我說的。

+0

走上正確的軌道,但如果我是正確的,這將返回「jono/umur」,而不僅僅是jono –

+0

不,你可能在我錯了之前拆分它。 –

+0

你是對的,我的答案太快了。這確實是我想的訣竅。 –