方法未按计划工作


Scanner adjectives = new Scanner(new File("adjectives.txt"));
        String[] adjectiveArray;
        adjectiveArray = new String[25];
        int counter = 0;
        while (counter<25)
        {
            String in = adjectives.next();
            fixCapitalization(in);
            adjectiveArray[counter]=in;
            counter++;
        }

是我的主代码和我的方法,我试图使用的是…

public static String fixCapitalization(String original)
{
    String modified = original.toLowerCase();
    return Character.toUpperCase(modified.charAt(0)) + modified.substring(1);
}

我试图在将单词放入数组之前修复单词的大写,但后来在我的程序中,我注意到形容词数组中的单词没有大写?我到底哪里错了?

String是不可变的

代替

fixCapitalization(in);
adjectiveArray[counter] = in;

adjectiveArray[counter] = fixCapitalization(in);

最简单的方法…只做

adjectiveArray[counter] = fixCapitalization(in);

您忽略了fixCapitalization的返回。试着改变

fixCapitalization(in);

in = fixCapitalization(in);

您需要像这样分配fixCapitalization()方法的返回值,因为String是不可变的,它不会改变您传递给fixCapitalization()的相同String的值。

那么试试这个:

String in = adjectives.next();
in = fixCapitalization(in);

您没有使用从方法- fixcapitalize返回的字符串下面是修复这个问题的代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

class test {
    public static void main() throws FileNotFoundException{
        Scanner adjectives = new Scanner(new File("adjectives.txt"));
        String[] adjectiveArray= new String[25];
        int counter = 0;
        while (counter<25){
            String in = adjectives.next();
            adjectiveArray[counter]=fixCapitalization(in);
            counter++;
        }
    }
    public static String fixCapitalization(String original){
        String modified = original.toLowerCase();
        return Character.toUpperCase(modified.charAt(0)) + modified.substring(1);
    }
}

相关内容

  • 没有找到相关文章

最新更新