1.要求:编写一个Java程序,将用户输入的句子当中每一个单词的第一个字母大写,而单词中的其余字母小写
2.第一步先将字符串中的其他的符号全部都转化称为空格,第二步按照空格将每一个单词分离出来,第三步判断每一个单词的第一个是不是字母,如果是的话就转化为大写,然后再判断其他的字母是不是大写,如果是大写就转化成为小写字母。
public class Converter{ public static String[] words = new String[20]; public static String convert(String value) { StringBuffer upAfter = new StringBuffer(value.length()); char aCharacter; value = value.replaceAll("[\\pP‘’“”]", " ");//将其他的符号都转化为空格 words = value.split(" ");//按照空格将每个单词分离称为字符数组 for (int i = 0;i < words.length; i++) { for(int j = 0;j < words[i].length(); j++) { aCharacter = words[i].charAt(j); if (j==0) { //判断是不是字母 if(Character.isLetter(aCharacter)) {//转化为大写字母 upAfter.append(Character.toUpperCase(aCharacter)); } else { Character.toUpperCase(aCharacter); } } else { //如果是大写字母就直接转成小写字母 if(Character.isLetter(aCharacter) && Character.isUpperCase(aCharacter)) { upAfter.append(Character.toLowerCase(aCharacter)); } else { upAfter.append(words[i].charAt(j)); } } } upAfter.append(" "); } return new String(upAfter); } }
3.然后主函数里面要注意类里面convert用的字符串,而不是字符数组
import java.util.Scanner; public class convertmain { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String [] work=new String[200]; for(int i=0;i<work.length;i++) { String test=sc.next(); work[i]=test; Converter c1=new Converter(); System.out.print(c1.convert(test)); } } }
4.实验结果
原文:https://www.cnblogs.com/Celiachen/p/13875069.html