怎么做描述中描述的程序? [英] How to do the program described in description?
本文介绍了怎么做描述中描述的程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
编写一个java程序来输入一个字符串并在将每个替换字母转换为大写字母并将下一个字母转换为小写字母后打印新字符串。
示例输入:我喜欢JAVA
样本输出:我lJE jAvA
代码块添加 - OriginalGriff [/ edit]
我尝试过:
Write a java program to input a string and print the new string after converting every alternate letter to upper case and the next immediate to lower case.
sample input: I LIKE JAVA
sample output: I lIkE jAvA
[edit]Code block added - OriginalGriff[/edit]
What I have tried:
import java.util.*;
public class alternates
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
String s,str="",sp,m="";
int i,l;
char c,cha=' ',ch=' ',k=' ';
System.out.println("Enter a string");
s=in.nextLine();
sp=s.trim();
sp=sp.replace(" ","");
l=sp.length();
for(i=0;i<l;i++)
{
ch=s.charAt(i);
c=sp.charAt(i);
{
if(i%2==0)
c=Character.toUpperCase(c);
else
c=Character.toLowerCase(c);
}
if(ch!=' ')
str=str+c;
else
str=str+" "+c;
}
System.out.println(str);
}
}
推荐答案
我想最好避免所有'修剪和更换空白'的东西。
字母计数器就足够了。
此外,我会使用StringBuilder类,而不是字符串连接运算符。类似于:
I suppose it would be better avoiding all that 'trim and replace blanks' stuff.
A letter counter would be just enough.
Moreover, I would use the StringBuilder class, instead of the string concatenation operator. Something like:
import java.util.*;
public class alternates
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
String src;
System.out.println("Enter a string");
src = in.nextLine();
for (int n = 0, l=0; n < src.length(); ++n)
{
char c = src.charAt(n);
if ( Character.isLetter(c) )
{
if ( l % 2 == 0)
sb.append(Character.toUpperCase(c));
else
sb.append(Character.toLowerCase(c));
++l; // l counts just letters
}
else
sb.append(c);
}
System.out.println(sb.toString());
}
}
这篇关于怎么做描述中描述的程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文