2017-05-29 2 views
0

を固定していないとき、私は文字列から単語を抽出しようとしているが、そう抽出部分の区切り文字は

から期待

私の文字列

String inpt="@[[4861:contact:An gela]] and @[[5163:contact:Bash]] and #asda @[[8888:contact:Dash Dash]]"; 

を行うことができないのです

String[] output={"@[[4861:contact:An gela]]","and","@[[5163:contact:Bash]]","and","#asda","@[[8888:contact:Dash Dash]]"} 

私はこのロジックを試しました(私のアプリケーションの一部であったHTMLタグと混同しないでください)

String inpt="@[[4861:contact:An gela]] and @[[5163:contact:Bash]] and #asda @[[8888:contact:Dash Dash]]"; 
     getHtmlTag(inpt); 
public void getHtmlTag(String inpt){ 
     String[] inptArr=inpt.split("&"); 
     for (int i = 0; i < inptArr.length; i++) { 
      if(inptArr[i].contains("@")){ 
       String temp=inptArr[i].replace("[",""); 
       String temp1=temp.replace("]",""); 
       String temp2=temp1.replace("@",""); 
       list.add(temp2); 
       String stop=getRequiredStringValue(temp2); 
       finaldString=finaldString+" "+stop; 
      }else { 
       extraList.add(inptArr[i]); 
       finaldString=finaldString+" "+inptArr[i]; 
      } 
     } 
    } 

public String getRequiredStringValue(String str){ 
     String userID=""; 
     String userName=""; 
     String tag=""; 
      String inputStr[]=str.split(":"); 
      for (int j = 0; j < inputStr.length; j++) { 
       userID=inputStr[0]; 
       userName=inputStr[2]; 
      } 
      tag="<a href='index.php?option=com_community&view=profile&userid="+userID+"'>"+userName+"</a>"; 
     return tag; 
    } 
+2

何を試してみましたか、今何を持っていますか? –

+1

@EugenPechanec私はそこで何をしたのか、私はどこにいるのかをチェックしました –

+0

うん、トークナイザー、これについてはどうですか? http://cogitolearning.co.uk/?p=525 –

答えて

2

これは、RegExとStringの分割方法で行うことができます。あなたのケースで (私はあなたの入力と期待出力から理解した内容に基づいて):

String[] output = input.split("\\s+(?![^\\[]*\\])"); 

このRegeExはスペース上の文字列を分割が、「[]」の間にものを除きます。

関連する問題