我在Java中实现了一个程序,该程序允许通过以下方式生成此继承:
输入:
Hello World
共鸣
连续的链:
你好世界
GOOD VIBRE
尝试执行以下操作:将String输入转换为具有拆分的数组类型字符串,然后使用if进行检查偶数位置,并将该小写位置和奇数位置的字母相同,只是将其转换为大写字母...问题是数组还保存了空格,这会导致序列出现滞后,并且我无法删除它,因为我必须以inputtext格式显示文本,我该怎么办?在不改变空格和换行符的情况下完成继承?
程序给我:
你好世界
GoOd版本
代码:
public String cambiar(String cadena1)
{
cambiar= cadena1.split("");
for(int i=0; i<cambiar.length; i++)
{
if(i%2==0)
{
cambiar[i]=cambiar[i].toLowerCase();
}
else
{
cambiar[i]=cambiar[i].toUpperCase();
}
}
for(int i=0; i<cambiar.length; i++)
{
textocambiado+=cambiar[i];
}
return textocambiado;
}
注意:我不允许使用arraylist
问题:https://drive.google.com/open?id=15VOlyhGtyvZ_0vcFype2o1sjiKkj7Hzn
答案 0 :(得分:1)
您有一个正确的主意,只需要跳过非字母计数器的增加即可。
您可以考虑另外两项性能改进:
StringBuilder
代替串联字符串boolean
来回翻转而不是检查计数器i
是奇数还是偶数:
public String cambiar(String input) {
boolean isLower = true;
StringBuilder result = new StringBuilder(input.length());
for (int i = 0; i < input.length(); ++i) {
char ch = input.charAt(i);
if (Character.isLetter(ch)) {
if (isLower) {
result.append(Character.toLowerCase(ch));
} else {
result.append(Character.toUpperCase(ch));
}
isLower = !isLower;
} else {
result.append(ch);
}
}
return result.toString();
}