我是Java的初学者,我正在编写一个代码,其中所有的char符号都打印出来,但字母的打印方式不同。如何排除符号的ASCII值?是否可以执行此类操作(其中诸如32和64之类的值表示与字符对应的ASCII值):
char notLetter = (originalMessage.charAt(i));
if ((32 <= notLetter <= 64) || (91 <= notLetter <= 96) || (123 <= notLetter <= 126)){
codedMessage += notLetter;
}
或者有更简单的方法吗?谢谢
编辑:当我尝试这段代码时,我收到以下错误:“&lt; =不能应用于boolean,int”
答案 0 :(得分:1)
我不确定你要做什么,但这里有一些一般信息。
char
之类的'a'
文字而不是int
个值。这使程序更容易理解。StringBuilder
而不是字符串连接。2 <= a <= 5
之类的表达式,因此您必须改为2 <= a && a <= 5
。以下代码打印, !
String x = "Hello, World!";
StringBuilder sb = new StringBuilder();
for (char c : x.toCharArray()) {
if (!(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')) {
sb.append(c);
}
}
System.out.println(sb.toString());
答案 1 :(得分:0)
char notLetter = (originalMessage.charAt(i));
if ((32 <= notLetter && notLetter <= 64) || (91 <= notLetter && notLetter <= 96) || (123 <= notLetter && notLetter<= 126)){
codedMessage += notLetter;
}
试试这个。
32 <= notLetter >= 64
这不会有两个原因:
答案 2 :(得分:0)
我会使用带有isAlphabetic()函数的Character Object Class: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isAlphabetic(int)
ASCII和Unicode应匹配。
答案 3 :(得分:0)
item 1
在java中不合法,但允许使用32 <= notLetter >= 64
。但是,这也永远不会成真 - 你的意思是32 <= notLetter && notLetter >= 64
?
另外需要注意的一点是:您可以实际使用32 <= notLetter && notLetter <= 64
并在两边使用字符:
<=
如果我理解你想做什么,这将做你想做的事:
(' ' <= notLetter && <= '@')