黑马程序员技术交流社区
标题:
字符串中字母大小写转换问题
[打印本页]
作者:
Alexander
时间:
2014-3-4 11:46
标题:
字符串中字母大小写转换问题
问题是:从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)
我想这题要用到ASCII表,然后进行加减运算,得出对应的大(小)写,不过具体怎么实现呢?
作者:
victorsun
时间:
2014-3-4 13:21
可以这样实现:public class convert{ private static final string NULL = null; public static void main(String[] args){ String a="HELLO guy"; int x=a.length();//x中存的是字符串的长度 String m=""; for(int i=0;i<x;i++)//对字符串里的字母进行遍历,逐个转 换 {if(a.charAt(i)>='a' && a.charAt(i)<='z') m=m+(char)(a.charAt(i)-32); else if(a.charAt(i)>='A' && a.charAt(i)<='Z') m=m+(char)(a.charAt(i)+32); else m=m+(char)(a.charAt(i)); } System.out.println(m); } }
作者:
Dora
时间:
2014-3-4 13:25
小写字母全部转换成大写字母就是对应ASCII码减32,
import java.io.*;
public class Exec5_1
{
public static void main(String[] args)
{
try
{
System.out.println("请输入字符串:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
char a[]=s.toCharArray();
for(int i=0;i<a.length;i++)
{
if(Character.isLowerCase(a[i]))//这是小写字母转换成大写字母
{
a[i]-=32;//出问题的地方
}
if(Character.isUpperCase(a[i]))//这是大写字母转换成小写字母
{
a[i]+=32;
}
}
String str=new String(a);
System.out.println(str);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
作者:
syw02014
时间:
2014-3-4 16:24
给你两种方法:
public class Word_Change
{
public static String wordChange_1(String line)//第一种转换方法
{
char[] ch = line.toCharArray();
StringBuilder sb = new StringBuilder();
for(int i =0;i<ch.length;i++)
{
if(ch[i]>='A'&&ch[i]<='Z')
{
ch[i]+=32;
sb.append(ch[i]);
}
else if(ch[i]>='a'&&ch[i]<='z')
{
ch[i]-=32;
sb.append(ch[i]);
}
else
sb.append(ch[i]);
}
return sb.toString();
}
public static String wordChange_2(String line)//第二种转换方法
{
char[] c = line.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0;i<c.length;i++)
if(c[i]>=97)
sb.append((c[i]+"").toUpperCase());
else
sb.append((c[i]+"").toLowerCase());
return sb.toString();
}
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer();
String s = "i LOVE cHINA!";
System.out.println("wordChange_1改变前:"+s);
System.out.println("wordChange_1改变后:"+wordChange_1(s));
System.out.println("\nwordChange_2改变前:"+s);
System.out.println("wordChange_2改变后:"+wordChange_2(s));
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2