我正在尝试使用递归遍历String数组并在重复字符之间输入“ - ”。例如:“你好”将输出到“hel-lo”
到目前为止,这是我的代码:
主要类别: 公共课L6C13PairStar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
PairStar str = new PairStar();
str.callStars();
}
}
PairStar类:
public class PairStar {
private String[] strs={"hello","xxaayybbzz","aabbaaccdef","jiladdsqss","g","","allstars"};
public void callStars()
{
for (int i=0; i<strs.length; i++)
System.out.println(stars(strs[i]));
System.out.println("*******************************************");
}
public String stars(String str)
{
String temp = null;
if (str.length() > 1)
temp=stars(str.substring(1,str.length()));
if (temp == null && str.length() > 1)
temp=str.substring(1);
if (temp != null)
{
for (int i=0; i<str.length(); i++)
{
int num = 0;
int num1 = 1;
if (str.charAt(num)==str.charAt(num1))
{
str = str.charAt(num) + "-" +str.charAt(num1)+temp;
num++;
num1++;
}
}
return str;
}
return str;
}
}
输出到:
hello,
x-xxaayybbzz,
a-aabbaaccdef,
jiladdsqss,
g,
,
allstars
*******************************************
代码仅检查前两个字符是否相同。如何让它继续查看数组的每个部分? 谢谢!
答案 0 :(得分:0)
StringBuilder
累积字符串。StringBuilder
。-
; 我会让你自己编写代码(如果你在我以前的答案中没有看到它......)
答案 1 :(得分:0)
循环遍历给定的字符串数组,使用toCharArray()
将每个字符串放入char数组中并检查重复字符,并使用StringBuilder
插入-
字符:
String[] strs = {"hello", "xxaayybbzz", "aabbaaccdef",
"jiladdsqss", "g", "", "allstars"};
for (int j = 0; j < strs.length; j++) {
String str = strs[j];
char[] chars = str.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
builder.append(chars[i]);
if (i < chars.length - 1 && chars[i] == chars[i + 1]) {
builder.append('-');
}
}
strs[j] = builder.toString();
}
for (String s : strs) {
System.out.println(s);
}
<强>输出:强>
hel-lo
x-xa-ay-yb-bz-z
a-ab-ba-ac-cdef
jilad-dsqs-s
g
al-lstars
答案 2 :(得分:0)
我会像其他人说的那样使用Stringbuilder,从数组中获取值并使用Stringbuilder为你做脏工作。如果您需要数组中的值,则可以始终将值保存回(覆盖)数组中的值(如果oldValue!= newValue。