ここの初心者。あいまいなタイトルで申し訳ありませんが、コードは私の質問を見通しに入れる必要があります。
public static void main(String [] args)
{
String sentence = "hi. how are you! i'm just dandy.";
String tokenSent;
tokenSent = sentenceCapitalizer(sentence);
System.out.println(tokenSent);
}
public static String sentenceCapitalizer(String theSentence)
{
StringTokenizer strTokenizer = new StringTokenizer(theSentence, ".!", true);
String token = null;
String totalToken = "";
String ch = "";
while(strTokenizer.hasMoreTokens())
{
token = strTokenizer.nextToken().trim();
token = token.replace(token.charAt(0), Character.toUpperCase(token.charAt(0)));
StringBuilder str = new StringBuilder(token);
str.append(" ");
totalToken += str;
}
return totalToken;
}
現状のままの出力:こんにちは。大丈夫 !私はただのダンディです。
各文の最初の文字を大文字にすることはできましたが、出力を元の文字列と同じ形式に保ちたいと思っています。問題は、句読点の終わりの前後にスペースを入れることです。StringBuilderやStringTokenizerのみを使用してこの問題を修正する方法はありますか?お時間をいただきありがとうございます。