如何遍历字符串列表以将每个单词的最后一个字母更改为UpCase?

时间:2015-04-07 03:40:56

标签: java string arraylist bluej

这是作业。当我的方法执行时,我似乎无法返回正确的代码。我不确定我的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.]

3 个答案:

答案 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);
    }
}