分隔符未修复时提取部分字符串

时间:2017-05-29 11:28:27

标签: java android

我正在尝试从字符串中提取单词但不能这样做

我的字符串

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;
    }

1 个答案:

答案 0 :(得分:2)

您可以使用RegEx和String拆分方法执行此操作。 在您的情况下(根据我对您的输入和预期输出的理解):

assert(3)

此RegeEx将在空格上拆分字符串,但除了&#34; []&#34;之间的字符串。