我在java中实现了一个程序,它允许使用以下方式的链生成此继承:
输入:
世界你好
心情好
连续链:
你好,世界
良好的氛围
尝试将字符串输入转换为带有分割的数组类型字符串,然后使用 if,检查偶数位置,并转换该小写位置的字母,对于奇数位置,相同,只有转换为大写字母...问题是数组还保存空格,这会导致序列滞后,我无法删除它,因为我必须使用 inputtext 格式显示文本,我能做什么如何在不改变其所具有的空格和换行符的情况下完成继承?
程序给我:
Hello World
良好的氛围
代码:
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
最佳答案
您的想法是正确的,您只需跳过增加非字母的计数器即可。
您可以考虑的另外两项性能改进:
- 使用
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();
}
关于java - 根据大小写交替生成字母的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824482/