java是否具有任何选项,例如从字符串中删除除第一次和最后一次出现之外所有出现的子串
String sdata=“vijay 10岁。vijay正在读五年级。vijay在板球等sports.vijay方面非常优秀。”
我需要一个输出像“维杰10岁。正在学习在5年级。是优秀的sports.vijay喜欢板球”
这意味着删除vijay的第二次和第三次出现。java有没有内置的函数可以做到这一点?
发布于 2015-08-04 17:00:37
这是一个非常具体的要求,所以答案是:不,Java没有任何标准函数。
我的建议是:使用indexOf和lastIndexOf查找第一个和最后一个匹配项,拆分字符串,使用replaceAll删除中间部分的所有匹配项,然后将所有内容连接在一起。
如果你不能自己解决这个问题,用你的代码和你的特定问题/问题来更新问题。
发布于 2015-08-04 17:04:32
不,不是这样的。你可以尝试这样做:
String s = "vijay is 10 yr old. vijay is studying in 5th grade. vijay is excellent in sports.vijay like cricket";
String token = "vijay";
StringTokenizer st = new StringTokenizer(s,token);
int count = 0;
while ( st.hasMoreElements() )
{
String temp = st.nextToken();
if(count == 0 || count == (st.countTokens() - 1)
{
//your code
}else{
//your code
}
count ++;
}发布于 2015-08-04 21:47:35
正如Jan所说,这是一件很具体的事情。有很多Java方法和库,但没有那么具体。所以我已经给出了一个示例答案,展示了如何通过迭代数组来实现这一点,它是这样做的。
私有void start() {
String origanlString = "vijay已经10岁了。vijay在五年级学习。维杰在运动方面很出色。像板球一样的***"+String.valueOf(orig)+"***("+orig.length+")chars");。“;String toFind = " vijay ";char deliminator = 'X';// '\u0000‘char[] orig = origanlString.toCharArray();char[] find = toFind.toCharArray();System.out.println("orig length:"+orig.length);System.out.println("find length:"+find.length+"\n");System.out.println(”find length:“find length”\n“)// 1.迭代要查找的数组(int i=0;i0;i--){System.out.println{ if(origi==deliminator&&firstInst){ origi=findcount--;if(origi-1!=分隔符){ firstInst=false;}catch(中断ex){ System.out.println("ArrayIndexOutOfBoundsException");break replaceLast;}} System.out.println("3 ArrayIndexOutOfBoundsException // 4.删除所有剩余的特殊字符计数= 0;for(int i=0;i
https://stackoverflow.com/questions/31804787
复制相似问题