黑马程序员技术交流社区
标题:
关于字符串中大小写转换问题!
[打印本页]
作者:
张玉建
时间:
2013-8-10 02:31
标题:
关于字符串中大小写转换问题!
本帖最后由 张玉建 于 2013-8-14 15:28 编辑
字符串中大小写都有,是小写的就转成大写,大写转小写!
我写了!几个都不对!
一个方式
for(int i = 0; i < str.length(); i++)
{
char c = str.charAt(i);
if (!Character.isLowerCase(c))
{
String s = String.valueOf(c);
s=s.toUpperCase();
}
else
{
String s = String.valueOf(c);
s=s.toLowerCase();
}
}
--------------------------------------------------------------------
第二
//转字符数组
char[] ch = str.toCharArray();
//遍历数组
for (int i = 0; i < ch.length; i++)
{
if(ch
>=97 && ch
<=122)
{
String s = String.valueOf(ch
);
s=s.toUpperCase();
char c=s.toChar();
}
else
{
String s = String.valueOf(ch
);
s=s.toLowerCase();
char c=s.toChar();
}
}
String arr= ch.toString();
return arr;
求大神解释!正确写法!和原理
作者:
gudao20080
时间:
2013-8-10 08:17
public static String typeChange(String str){
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++)
{
if(ch[i]>=97 && ch[i]<=122)
{
String s = String.valueOf(ch[i]);
s=s.toUpperCase();
char c=s.charAt(0);
ch[i] = c; //替换大小写
}
else
{
String s = String.valueOf(ch[i]);
s=s.toLowerCase();
char c=s.charAt(0);
ch[i] = c; //替换大小写
}
}
String arr= String.valueOf(ch); //数组转换成字符串的形式
return arr;
}
复制代码
作者:
米中之玉
时间:
2013-8-10 08:56
public static String typeChange(String str) {
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++)
{
if (ch[i] >= 97 && ch[i] <= 122) //将A--->Z装换成a--->z
{
ch[i] = (char) (ch[i] - 32);
}
else if (ch[i] >= 65 && ch[i] <= 90) //将a--->z装换成A--->Z
{
ch[i] = (char) (ch[i] + 32);
}
else
{
System.out.println("存在不合法字符!");//这句可以不写,
}
}
str = String.valueOf(ch);
return str; //之所以把返回一个字符串,是因为String做参数,传递的是值,而不是引用。
}
复制代码
作者:
心灵之歌
时间:
2013-8-10 09:52
public static String typeChange(String str){
char[] ch = str.toCharArray();//把接收的字符串转成字符数组
for (int i = 0; i < ch.length; i++)//遍历字符数组
{
if(ch[i]>=97 && ch[i]<=122)//判断字符数组是否为小写
{
String s = String.valueOf(ch[i]);
s=s.toUpperCase();//把小写转成大写
char c=s.charAt(0);
ch[i] = c; //替换大小写
}
else
{
String s = String.valueOf(ch[i]);
s=s.toLowerCase();//把大写转成小写
char c=s.charAt(0);
ch[i] = c; //替换大小写
}
}
String arr= String.valueOf(ch); //数组转换成字符串的形式
return arr;
}
作者:
masterV
时间:
2013-8-12 01:02
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 第七题: 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。
*
* 思路:
* 1, 接收键盘录入需要用到标准输入流System.in;
* 2, 字符串大小写转换要用Character类中的isLowerCase(),isUpperCase(),toUpperCase()和toLowerCase();
*
*
* @author DevLover
*
*/
public class Test7
{
public static void main(String[] args) throws Exception
{
// 创建字符串读取流缓冲区,读取键盘录入
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
try
{
//接收键盘录入的字符串
String str = bufr.readLine();
//将字符串转换成字节数组
char[] ch = str.toCharArray();
int x = 0;
char c;
while(x < ch.length)
{
c = ch[x];
if (Character.isLowerCase(c))
//如果该字符是小写,则执行此语句
System.out.print(Character.toUpperCase(c));
else
//如果该字符是大写,则执行此语句
System.out.print(Character.toLowerCase(c));
x++;
}
System.out.println();
}
catch (IOException e)
{
e.printStackTrace();
}
bufr.close();
}
}
复制代码
作者:
吴光新
时间:
2013-8-12 02:31
我以前做的题中有做过这个判断,思想就是先把这个字符A转换成大写得到B,然和用A和B比较,如果B和A相等,那么说明A原来是大写的,就转换才小写的。否则是小写的,就转换成大写的。
这里A和B不是字符,是对象。
我醉了,不要相信
作者:
yangxin540
时间:
2013-8-12 10:58
/*
* 建立方法获取键盘输入
*/
private static void solve() {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
exChange(str);
}
/*
* 建立大小写的转换方法
*/
private static void exChange(String str){
StringBuffer sb = new StringBuffer();
if(str!=null){
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(Character.isUpperCase(c)){
sb.append(Character.toLowerCase(c));
}else if(Character.isLowerCase(c)){
sb.append(Character.toUpperCase(c));
}
}
}
print(sb.toString());
}
我也把写的贴出来吧,欢迎拍砖,大家共同进步嘛
作者:
panningwjr
时间:
2013-8-12 13:40
public static void main(String[] args) {
// 创建键盘读取流对象
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
while ((line = br.readLine()) != null) {
// 将读入的字符串转变成字符数组
char[] c = line.toCharArray();
// 循环遍历字符数组
for (int i = 0; i < c.length; i++) {
if ('a' <= c[i] && c[i] <= 'z') {
// 将小写转换成大写
c[i] = (char) (c[i] + ('A' - 'a'));
} else if ('A' <= c[i] && c[i] <= 'Z') {
// 将大写转换成小写
c[i] += ('a' - 'A');
}
}
System.out.println(new String(c));
}
} catch (IOException e) {
e.printStackTrace();
}
}
复制代码
这是我之前写的,供楼主参考.
作者:
以防万一
时间:
2013-8-13 22:25
亲,如问题已解决请将分类的未解决改为已解决。
以后的问题贴也要及时更改分类哦~
保持队形,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2