eg:
String s="this is a.line is .over "
should come out as
"This is a.Line is.Over"
I thought of using string tokenizer twice
-first split using"."
-second split using " " to get the first word
-then change charAt[0].toUpper
now i'm not sure how to use the output of string tokenizer as input for another?
also i can using the split method to generate array something i tried
String a="this is.a good boy";
String [] dot=a.split("\\.");
while(i<dot.length)
{
String [] sp=dot[i].split(" ");
sp[0].charAt(0).toUpperCase();// what to do with this part?
If you can use WordUtils from Apache commons-lang3, do this:
Note that Java Strings are immutable (not modifiable).
Also note that
sp[0].charAt(0)
will cause anArrayIndexOutOfBoundsException
if there's a space directly after a.
(since then the first string will be empty).I suggest using
char[]
, so something like:Character.isWhitespace(arr[i])
may be preferred toarr[i] != ' '
.Use StringBuilder, no need to split and create other strings, and so on, see the code
Try this to capitalize first letter of the sentence. I just did little changes in your code.
Output:
No need to mess with splitting and splicing, you can work in-place on a character array: