gpt4 book ai didi

java - 如何使用 StringBuilder 重建字符串?

转载 作者:行者123 更新时间:2023-11-29 07:43:46 25 4
gpt4 key购买 nike

我正在尝试使用 StringBuilder 重建字符串。我有点不确定要使用哪种方法将“'”插回到同一个地方。在下面的代码中,我使用“插入(int dstOffset,CharSequence s,int start,int end)”方法。我的代码不包含任何错误,但它无法正常运行。

请注意,我还将在字符串中转义字符(即 =),但我还没有编写这部分代码。目前我正在尝试学习如何拆分字符串然后重建它。

谢谢

public class StringTestProgram 
{
public static void main(String[] args)
{
String relativeDN = "cn=abc,dn=xyz,ou=abc/def";
String[] stringData = relativeDN.split(",");
for (String stringoutput : stringData)
{
System.out.print(stringoutput);
StringBuilder sb = new StringBuilder(stringoutput);
CharSequence charAdded = ",";
sb.insert(6,charAdded,0,12);
System.out.print(sb.toString());
}
}
}

修改后的代码

public class StringTestProgram {
public static void main(String[] args) {

String relativeDN = "cn=abc,dn=xyz,ou=abc/def";
System.out.println(relativeDN);

//Split String
String[] stringData = relativeDN.split(",");


{
StringBuilder sb = new StringBuilder();
CharSequence charAdded = ",";

// loop thru each element of the array
for (int place = 0; place < stringData.length; place++) {
System.out.println(stringData[place]);

{

int eq = relativeDN.indexOf('=');
String sub = relativeDN.substring(0, eq);
System.out.println(sub);

}


// append element to the StringBuilder
sb.append(stringData[place]);

// avoids adding an extra ',' at the end
if (place < stringData.length - 1)

// if not at the last element, add the ',' character
sb.append(charAdded);
}
System.out.print(sb.toString());

}
}
}

我是 stackoverflow 的新手,我不确定是否可以在这个线程中提出这个问题,或者我是否应该为这个问题创建一个单独的线程。如果可能请指教。

上面的代码现在在“,”字符处拆分字符串。它还重建了字符串恢复到原来的状态。我还想使用 indexof 和 .substring获取“=”号后的字符串值的方法。目前我的程序只输出“=”符号之前的初始字符串值的前两个字符。不确定在哪里在我的代码中我犯了一个错误。任何帮助将不胜感激。

我的当前输出cn=abc,dn=xyz,ou=abc/defcn=abccndn=xyzcnou=abc/defcncn=abc,dn=xyz,ou=abc/def

期望的输出cn=abc,dn=xyz,ou=abc/defcn=abc美国广播公司dn=xyzxyzou=abc/defabc/defcn=abc,dn=xyz,ou=abc/def

最佳答案

在 Java 8 之前执行此操作的最简单方法是对所有元素使用 1 个 StringBuilder,并使用 append() 方法将字符串添加到构建器

StringBuilder builder = new StringBuilder();

for (String stringoutput : stringData) {
builder.append(stringoutput).append(',');
}

//have an extra trailing comma so remove it
//use length -1 as end coord because it's exclusive
String result = builder.substring(0, builder.length() -1);

如果您使用的是 Java 8,则可以使用新的 Stream API 和 Collectors.joining()

String result = Arrays.stream(relativeDN.split(","))
.collect(Collectors.joining(","));

关于java - 如何使用 StringBuilder 重建字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626221/

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