gpt4 book ai didi

java - 当分隔符不固定时提取部分字符串

转载 作者:行者123 更新时间:2023-12-02 02:48:13 24 4
gpt4 key购买 nike

我正在尝试从字符串中提取单词,但无法这样做

我的字符串

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

最佳答案

您可以使用正则表达式和字符串拆分方法来完成此操作。就您的情况而言(根据我对您的输入和预期输出的理解):

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

此 RegEx 将在空格上分割字符串,但“[ ]”之间的字符串除外。

关于java - 当分隔符不固定时提取部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com