在Java中在字符串的所有字母之前和之后插入字符

c9x0cxw0  于 2023-01-29  发布在  Java
关注(0)|答案(6)|浏览(323)

我想在字符串中的每个字母之前和之后插入一个%字符,但是使用StringBuilder可以使它更快。
例如,如果字符串为“AA”,则为“%A%A %”。如果为“XYZ”,则为“%X%Y%Z%”

1zmg4dgp

1zmg4dgp1#

String foo = "VWXYZ";
foo = "%" + foo.replaceAll("(.)","$1%");
System.out.println(foo);

输出:
% V %W %X %Y %Z %
你不需要一个StringBuilder,编译器会在正则表达式之前使用一个来处理这个简单的连接。

    • 根据以下意见进行编辑:**

replaceAll()使用一个Regular Expression (regex)
正则表达式(.)表示"匹配任意字符,并给我一个对它的引用" .是任意字符的通配符,括号创建反向引用。第二个参数中的$1表示"使用匹配中的#1反向引用"。
replaceAll()在整个字符串上运行这个表达式,将每个字符替换为自身,后跟一个百分号,构建一个新的String,然后返回给您。

dfuffjeb

dfuffjeb2#

试试这样的方法:

String test = "ABC";
    StringBuilder builder = new StringBuilder("");
    builder.append("%");
    for (char achar : test.toCharArray()) {
        builder.append(achar);
        builder.append("%");
    }
    System.out.println(builder.toString());
vlurs2pr

vlurs2pr3#

public static String escape(String s) {
    StringBuilder buf = new StringBuilder();
    boolean wasLetter = false;
    for (char c: s.toCharArray()) {
        boolean isLetter = Character.isLetter(c);
        if (isLetter && !wasLetter) {
            buf.append('%');
        }
        buf.append(c);
        if (isLetter) {
            buf.append('%');
        }
        wasLetter = isLetter;
    }
    return buf.toString();
}
afdcj2ne

afdcj2ne4#

StringBuilder sb = new StringBuilder("AAAAAAA");

for(int i = sb.length(); i >= 0; i--)
{
    sb.insert(i, '%');
}
oymdgrw7

oymdgrw75#

你可能会看到这个。

String s="AAAA";
    StringBuilder builder = new StringBuilder();
    char[] ch=s.toCharArray();
    for(int i=0;i<ch.length;i++)
    {
        builder.append("%"+ch[i]);
    }
    builder.append("%");
    System.out.println(builder.toString());

产出

%A%A%A%A%
dfddblmv

dfddblmv6#

我同意@布赖恩罗奇添加字符之前和之后,但如果你想添加任何特定的字符,然后这样做

String source = "hello good old world";
StringBuffer res = new StringBuffer();
String[] strArr = tagList.split(" ");

for (String str : strArr) {
     char[] stringArray = str.trim().toCharArray();
     stringArray[0] = stringArray[0];
     str = new String(stringArray);
     //here you need to specify your first and last character which you want to set 
     res.append("#"+ str + "$").append(" ");
 }

 System.out.println("Result: " + res.toString().trim());

输出:- #你好$ #好$ #旧$ #世界$

相关问题