2013-05-31 66 views
-2

我正在寫一個從程序中刪除一個字符的java程序。我得到一個錯誤,說:方法charAt(int)是未定義的類型java.Lang.String。 [line 35]從句子中刪除一個字符

任何建議這意味着什麼。

public class Ex1Program { 

public void start() { 

String sentence = getSentenceFromUser(); 
int randomPosition = getRandomPosition(sentence); 
printCharacterToBeRemoved(sentence, randomPosition); 
String changedSentence = removeCharacter(sentence, randomPosition); 
printNewSentence(changedSentence); 

} 

private String getSentenceFromUser() { 
System.out.print("Enter a sentence :"); 
String sentence = Keyboard.readInput(); 
return sentence; 
} 
private int getRandomPosition(String sentence) { 
int randomPosition = (int)(Math.random() * 14) +1; 
return randomPosition; 
} 

private void printCharacterToBeRemoved(String sentence, int randomPosition) { 
System.out.print("Removing " + sentence.charAt(randomPosition) + " from position " +     randomPosition); 

} 

private String removeCharacter(String sentence, int randomPosition) { 
String changedSentence = sentence.trim().CharAt(randomPosition); 
return changedSentence; 
} 

private void printNewSentence(String changedSentence) { 
System.out.print("New sentence is " + changedSentence); 
} 
} 
+1

爲什麼使用算法標記? – Kent

+0

方法名稱應始終以小寫字符開頭,包名稱應始終爲小寫。 – Adarsh

回答

3
String changedSentence = sentence.trim().CharAt(randomPosition); 

charAtCharAt。儘管如此,如果你做了這個改變,你仍然試圖將一個char分配給一個應該保持String的變量。您可以使用Character.toString將字符轉換爲字符串。


P.S.如果要刪除字符串中的字符,請使用StringBuilder

String changedSentence = (new StringBuilder(sentence)). 
             deleteCharAt(randomPosition).toString() 
+0

他給我們的錯誤信息顯示了正確的方法名稱:) – Adarsh

+0

好的。我仍然得到一個錯誤:「Type mismatch; can not convert from char to java.lang.string。Line 35. What's it mean? – Ali

+0

@Hunter McMillen錯誤在這一行:String changedSentence = sentence.trim()。 charAt(randomPosition); – Ali

相關問題