如何使用 stringbuilder 添加所有其他字符并在空格处重新启动?
Posted
技术标签:
【中文标题】如何使用 stringbuilder 添加所有其他字符并在空格处重新启动?【英文标题】:How to use utlizie stringbuilder to add every other character and restart at a space? 【发布时间】:2019-01-18 08:31:53 【问题描述】:半字符串应该返回字符串中的每个其他字符,它应该返回起始字符。例如,halfOfString(“Qbkm Zgis”, 0)
返回字符串“Qk gs”,调用halfOfString(“Qbkm Zgis”, 1)
返回字符串“bmZi”。一旦你到达一个空格,后面的字母就应该被计算在内,然后你继续每一个字母。
我的代码没有按应有的方式工作,我一直在尝试用不同的方式进行修复,但是空格字符会导致所有问题。
public String halfOfString(String message,int start )
StringBuilder halfString = new StringBuilder();
int length= message.length();
for (int k=start;k<length;k++)
char achar = message.charAt(k+1);
if (Character.isLetter(achar)!=true)
achar='\0';
System.out.println("this is char"+"\t"+achar);
halfString.append(achar );
System.out.print("this is halfString in the forloop"+"\t"+halfString);
return halfString.toString();
【问题讨论】:
【参考方案1】:你需要做chatAt(k)
而不是k+1
,你不需要检查它是否是一个空格。也做k += 2
而不是k++
(正如你想要的所有其他角色)。最后,您不需要将长度解析为变量。您可以直接检查长度:
public static String halfOfString(String message,int start )
StringBuilder halfString = new StringBuilder();
for (int k=start;k<message.length();k+=2)
char achar = message.charAt(k);
halfString.append(achar);
return halfString.toString();
输出:
//with 0 as start:
Qk gs
//With 1 as start:
bmZi
【讨论】:
谢谢你的代码是正确的。你怎么知道你不需要检查空间?我正在努力思考我的代码。我还认为空格算作一个字符? @Eli 为什么要检查空格?它将像任何其他char
一样被附加
在某些编程语言中,空格被视为一个字符。我还在学习java。以上是关于如何使用 stringbuilder 添加所有其他字符并在空格处重新启动?的主要内容,如果未能解决你的问题,请参考以下文章
C# String与StringBuilder的区别和使用方法
C# String与StringBuilder的区别和使用方法
使用 StringBuilder 用空格或其他字符填充字符串
当我使用 StringBuilder.Append 而不是 .AppendLine 时,是不是需要添加额外的 .Append(crlf)s?