(java)实现字符串大小写的转换并倒序输出,要求如下:

题目如下:

1.掌握如何使用有关字符串类的API。
编写exp3_1.java,实现字符串大小写的转换并倒序输出,要求如下:
1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。
2)在步骤1中遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase() 方法将其转换为大写字符。
3)定义一个StringBuffer对象,调用append()方法依次添加步骤1中遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

对题目的理解:

1.首先是对步骤一的理解,因为题目要求将字符串遍历但是字符串能遍历吗?肯定不行啊所以我们要将其转化为数组这句用到了:string中的char[] toChar[];
2.好了遍历的问题解决了,现在又来了一个新的问题。数组元素能调用toString()?答案是不能,所以怎么办?只能再次将其转换,好了这里又用到了valueOf();好家伙,我TM直接好家伙书中valueOf()的作用是将整数转化为字符串,我也是用了eclipse才知道,它不止能转化整数为字符串,还能转化字符,甚至是布尔值为字符串,并且valueOf是用Static关键字修饰的可以使用类名直接调用
3.ValueOf()是返回一个字符串,所以可以作为append()的参数;但注意不能用数组去接手因为返回值不是单个字符例如:c[i]=String.valueOf(ch[i]).toUpperCase()是错误
4. 好了,这里又是教材一个坑爹的地方,书中的参数只有单个字符,没想到的是它还能插入字符串

代码及细节如下:

public class Exp3_1 {
	public static void main(String[] args) {
		  String str ="HellowWorld";	  
		  step(str);
	  }
	
	public static void step(String str) {
	StringBuffer ch1=new StringBuffer();//创建一个StringBUffer对象,方便我们将倒序的字符串插入,应为append的插入是类似于堆栈的先进后出,所以我们只需将原字符串按序处理即可得到倒序的字符串;
		char[] ch=str.toCharArray();//将字符串转化为字符数组
		  for(int i=str.length()-1;i>=0;i--) {//遍历字符串并将判断其的大小写
			  if(ch[i]>='a'&&ch[i]<='z') {
				 ch1.append(String.valueOf(ch[i]).toUpperCase()); //先利用ValueOf()将字符转化为字符串,后将其插入到StringBuffer中去	
			  }
			  if(ch[i]>='A'&&ch[i]<='Z') {
				 ch1.append(String.valueOf(ch[i]).toLowerCase());				
			  }
		  }		  
			  System.out.print(ch1.toString());  //可以将toString省略
	}
}

你可能感兴趣的:(java练习题,java,字符串)