[英]Method not working as Planned?
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中的單詞沒有大寫嗎? 我到底哪里出問題了?
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);
您沒有使用從方法返回的字符串-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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.