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);
}
我试图在将它放入数组之前修复单词的大小写,但是后来在我的程序中我注意到adjectiveArray中的单词没有被大写?我到底哪里错了?
答案 0 :(得分:2)
String
是不可变的
替换
fixCapitalization(in);
adjectiveArray[counter] = in;
与
adjectiveArray[counter] = fixCapitalization(in);
答案 1 :(得分:2)
最简单的方法..做吧
adjectiveArray[counter] = fixCapitalization(in);
答案 2 :(得分:1)
您忽略了fixCapitalization
的回复。尝试更改
fixCapitalization(in);
到
in = fixCapitalization(in);
答案 3 :(得分:1)
您需要像这样从fixCapitalization()
方法分配返回值,因为String是不可变的,并且它不会更改您传递给fixCapitalization()
的相同String的值。
所以试试这个:
String in = adjectives.next();
in = fixCapitalization(in);
答案 4 :(得分:0)
您没有使用Method - fixCapitalization返回的字符串 以下是解决此问题的代码。
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);
}
}