黑马程序员技术交流社区
标题:
那个面试题大小写转换的,居然被难住了,来看看哪错了
[打印本页]
作者:
Yov正
时间:
2014-5-11 18:16
标题:
那个面试题大小写转换的,居然被难住了,来看看哪错了
本帖最后由 Yov正 于 2014-5-12 19:46 编辑
import java.util.Scanner;
/**
* 输入字符串大小写转换
*
*/
class Test {
public static void main(String[] args) throws Exception {
Scanner cin = new Scanner(System.in);
System.out.println("请输入字符串");
String line = cin.next();
System.out.println("转化大小写后 " + shiftCase(line));
}
private static String shiftCase(String line) {
// TODO 自动生成的方法存根
String shift = null;
char[] chars = line.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] > 'a' || chars[i] < 'z') {
chars[i] -= 32;
} else if (chars[i] > 'A' || chars[i] < 'Z') {
chars[i] += 32;
}
}
shift=new String(chars);
return shift;
}
}
复制代码
作者:
Yov正
时间:
2014-5-11 18:18
小写转大写没事,大写转小写就是乱码啊{:3_55:}明明一个是加一个是减的
作者:
月光海
时间:
2014-5-11 19:00
代码不严谨,第一,chars
要大于等于a才行,你的代码是只转换b-y,其他处一样,
其次,判断 条件里面的关系是and不是或,你的意思就是只要是比a大就都是小写了?看我代码
package day1;
import java.util.Scanner;
/**
* 输入字符串大小写转换
*
*/
class Test {
public static void main(String[] args) throws Exception {
Scanner cin = new Scanner(System.in);
System.out.println("请输入字符串");
String line = cin.next();
System.out.println("转化大小写后 " + shiftCase(line));
}
private static String shiftCase(String line) {
// TODO 自动生成的方法存根
String shift = null;
char[] chars = line.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] >= 'a' && chars[i] <= 'z') {
chars[i] -= 32;
} else if (chars[i] >= 'A' && chars[i] <= 'Z') {
chars[i] += 32;
}
}
shift=new String(chars);
return shift;
}
}
复制代码
作者:
Yov正
时间:
2014-5-12 19:45
月光海 发表于 2014-5-11 19:00
代码不严谨,第一,chars要大于等于a才行,你的代码是只转换b-y,其他处一样,
其次,判断 条件里面的关系 ...
:handshake专业,后来我也发现是或了,等号还是没发现
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2