这是作业。当我的方法执行时,我似乎无法返回正确的代码。我不确定我的for循环是否正在迭代,或者我是否应该使用增强的for循环。这是我的代码:
/**
* Replaces the words in the string so that every last character is upper case
*/
public void lastToUpperCase()
{
for(int i=0;i>list.size();i++)
{
String chopped = list.get(i);
String chopped1 = chopped.substring(chopped.length()-1,chopped.length());
String screwed1 = chopped.substring(0,chopped.length()-1);
String chopped2 = chopped1.toUpperCase();
String frankenstein = screwed1 + chopped2;
System.out.print(frankenstein);
}
}
这是应该打印的内容:
[PeteR, PipeR, pickeD, A, pecK, oF, pickleD, peppers.]
答案 0 :(得分:1)
我会从for-each
loop开始并使用StringBuilder
(对于setCharAt(int, char)
)和
for (String str : list) {
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(sb.length() - 1, Character.toUpperCase(//
sb.charAt(sb.length() - 1)));
System.out.print(sb);
}
的问题
for(int i=0;i>list.size();i++)
i
不是>list.size()
,因此您的循环未输入。
for(int i=0;i<list.size();i++)
答案 1 :(得分:0)
详细说明其他人对for
的评论:第二个表达被视为“while”条件;也就是说,循环继续,而表达式为真。表达式变为false后,循环终止,程序进入循环后的语句。你写这篇文章的方式(请注意,使用额外的空格更容易阅读,而不是全部卡在一起):
for (int i = 0; i > list.size(); i++)
i
从0开始。但是0 > list.size()
是false
,所以它会立即退出循环 - 也就是说,它永远不会执行列表主体。
答案 2 :(得分:0)
我明白了:
/**
* Replaces the words in the string so that every last character is upper case
*/
public void lastToUpperCase()
{
for(int i=0; i<list.size(); i++)
{
String chopped = list.get(i);
String screwed = chopped.substring(chopped.length()-1,chopped.length());
String frankenstein = screwed.toUpperCase();
String von = list.set(i, chopped.substring(0, chopped.length()-1) + frankenstein);
}
}