gpt4 book ai didi

java - 字符串操作 - 还有其他有效的方法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:49 24 4
gpt4 key购买 nike

我有一个要求,我需要在给定的字符串变量中插入转义序列,在出现单引号 (') 的地方。我尝试使用 split 方法和 StringTokenizer,但没有一个适合我。所以我开发了下面提到的逻辑。它在一些情况下也会失败

谁能给我一个最简单的方法来实现这样的要求。?

public static String quotesMessage(String message){
String newMessage="";
while(message.length()>0){
if(message.indexOf("'")==0){
if(!StringUtils.isEmpty(message.substring(0))){
message = message.substring(1);
}
}else{
if(message.indexOf("'")!= -1){
newMessage=newMessage+message.substring(0,message.indexOf("'"))+"\\'";
message=message.substring(message.indexOf("'"));
}else{
newMessage=newMessage+message;
message="";
}
}
}
return newMessage;
}

最佳答案

这个怎么样:

newMessage.replace("'", "\\'")

还是我误解了您的要求?


关于评论中的讨论:是的,replace()replaceAll() use Regular Expressions 在内部使用编译模式(但是replace() 使用标志 Pattern.LITERAL ),将模式解释为文字值,而 replaceAll()(和 replaceFirst())两者使用正则表达式。但是,编译后的模式完全相同(在本例中)。自己试试:

Pattern literal = Pattern.compile("'",Pattern.LITERAL);
Pattern regular = Pattern.compile("'");

在这些赋值之后添加一个断点,仔细看看这两个编译模式。您会发现它们的所有字段值都是相同的,因此至少在这种情况下,不会在性能方面产生任何差异。

关于java - 字符串操作 - 还有其他有效的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889430/

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