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