>So obviously I need to allow my program to indentify English words.
Obviously? Indeed, how would you enforce camel case in this identifier:
KfxReturnValue kfxRetVal; Identifiers are pretty close to free form in Java, so you're in for a rough ride with this program if you want it to be remotely useful. First, you need to pick out identifiers (you can do this most easily by identifying declarations rather than parsing every token in the source for identifiers). Then you need to grab the identifier and determine breakpoints (the place where a programmer might put an underscore) and match it against a mask using camel case. If it matches, move on. If it doesn't, offer the mask as a suggested change.
That's all pretty easy except for determining the breakpoints. I can guarantee that matching English words will either fail miserably or be of limited use. You might be better off writing this part as a plug-in where client code can supply logic that matches their naming conventions. If you want to do this for the general case, you have to account for English words as well as common and uncommon abbreviations across a wide range of project domains.
And finally, you said that this program enforces camel case. If your design suggests changes then that's fine, but if it actually makes changes or requires them to be made, that's not fine. What if the program is wrong? Nobody will use it, plain and simple. It's extremely difficult to write this program to be always right, so you need to make a compromise and suggest rather than enforce.