黑马程序员技术交流社区
标题:
写一个方法,实现字符串大小写互转
[打印本页]
作者:
耿明明
时间:
2013-6-5 16:06
标题:
写一个方法,实现字符串大小写互转
本帖最后由 耿明明 于 2013-6-5 16:51 编辑
如题,假设这个字符串为"iThEImA"转为"ItHeiMa"
方法越简练越好!!
最好注释,以及解题思路.
作者:
曾大鹏
时间:
2013-6-5 16:21
本帖最后由 曾大鹏 于 2013-6-5 16:26 编辑
额 根据ascall码值啊 'A'是65 ‘a' 是97 'a' 跟'A' 差32
判断一下就好了啊。。
static void Main(string[] args)
{
string str="iThEImA";
str = ChangeToStr(str);
Console.WriteLine(str);
}
private static string ChangeToStr(string str)
{
char[] a = str.ToCharArray();
for (int i = 0; i < a.Length; i++)
{
if (a[i] >= 'a' && a[i] <= 'z')
a[i] = (char)(a[i] -32);
else
a[i] = (char)(a[i] + 32);
}
return new string(a);
}
复制代码
C#写的 可以参考一下
作者:
神之梦
时间:
2013-6-5 16:36
本帖最后由 神之梦 于 2013-6-5 16:37 编辑
看下这个可以么?楼上下手比我快!{:soso_e117:}
/*
需求:假设这个字符串为"iThEImA"转为"ItHeiMa"
思路:1、将字符串转换成字符数组
2、遍历数组进行判断,如果是大写就转换为小写,如果是小写就转换为大写
3、将字符数组转换为字符串
*/
class Test
{
public static void main(String[] args)
{
String s="iThEImA";
System.out.println(upLowSwap(s));
}
//字符串大小写互转方法
public static String upLowSwap(String str)
{
//转换为字符数组
char[] c=str.toCharArray();
for (int x=0;x<c.length ;x++ )
{
if(c[x]>='a'&& c[x]<='z')
{
c[x]=(char)(c[x]-32);//因为大小写字母在ASCII码中相差32,所以只有加或者减32就可以了
}
//这里没有其他字符,就直接写else了
else
{
c[x]=(char)(c[x]+32);
}
}
return new String(c);
}
}
复制代码
作者:
刘晓
时间:
2013-6-5 16:40
本帖最后由 刘晓 于 2013-6-5 16:44 编辑
public static void main (String [] args)
{
char[] arr={'i','T','h','E','I','m','A'};
for(int i=0;i<arr.length;i++)
{
if (arr[i] > 97)//和97比较,大于97说明是小写,小于97是大写。
{
arr[i]=(char)(arr[i]-32); //大写和小写之间错32.小写减32是大写
}
else
{
arr[i]=(char)(arr[i]+32); //大写加32是小写
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]);
}
}
复制代码
作者:
小权
时间:
2013-6-5 16:46
public class test {
public static void main(String[] args)
{
String str="iThEImA";//原字符串
char[] array = str.toCharArray();//转化成字符串数组
for(int i=0;i<array.length;i++)
{
if(array[i]>=(int)'A' && array[i]<=(int)'Z')
array[i]=(char)(array[i]+32);
else if(array[i]>=(int)'a' && array[i]<= (int)'z')
array[i]=(char)(array[i]-32);
}
String result = String.valueOf(array);
System.out.println(result);
}
}
复制代码
作者:
金辉
时间:
2013-6-5 16:58
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
String s = "iThEImA";
System.out.println("改变前:" + s);
char[] c = s.toCharArray();//将字符串转为数组
for (int i = 0; i < c.length; i++) {//遍历数组,如果原来是大写,转为小写存储到sb中
if (c[i] >= 97) {
sb.append((c[i] + "").toUpperCase());
} else {
sb.append((c[i] + "").toLowerCase());
}
}
System.out.print("改变后:");
System.out.println(sb.toString());//输出转变后的结果
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2