在控制台输入一行英文语句,设计一个算法,能够实现如下效果:
(1) 每个单词的首字母大写,后面的小写
(2) 单词之间如果有多个空格,则将其调整为1个空格
(3) 单词的首末空格要全部去除
例如:
输入: Opportunity kocks buT oNce
输出:Opportunity Knocks But Once*/
在控制台输入一行英文语句,设计一个算法,能够实现如下效果:
(1) 每个单词的首字母大写,后面的小写
(2) 单词之间如果有多个空格,则将其调整为1个空格
(3) 单词的首末空格要全部去除
例如:
输入: Opportunity kocks buT oNce
输出:Opportunity Knocks But Once*/
代码如下,如有帮助,请帮忙采纳一下,谢谢。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char array[] = new char[s.length()+1];
int i=0,j = 1;
//去掉开头的空格
while(s.charAt(i) ==' '){
i++;
}
if(s.charAt(i) >='a' && s.charAt(i) <= 'z')
array[0] = (char) (s.charAt(i) - 32);
else
array[0] = s.charAt(i);
i++;
for(;i<s.length();i++){
if( s.charAt(i) == ' ' ){
if(array[j-1] != ' ')
array[j++] = s.charAt(i);
else
continue;
}else {
if(array[j-1]==' ')
array[j++] = (char) (Character.toLowerCase(s.charAt(i)) - 32);
else
array[j++] = Character.toLowerCase(s.charAt(i));
}
}
for(i = j-1;i>=0;i--){
if(array[i] != ' ') break;
}
array[i+1] = 0;
String so = String.copyValueOf(array).trim();
System.out.println(so);
}