两个ASCII值Java之间的字符

时间:2015-10-26 16:51:08

标签: java char ascii

我是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”

4 个答案:

答案 0 :(得分:1)

我不确定你要做什么,但这里有一些一般信息。

  1. 使用char之类的'a'文字而不是int个值。这使程序更容易理解。
  2. 在大多数情况下,您应该使用StringBuilder而不是字符串连接。
  3. Java不支持2 <= a <= 5之类的表达式,因此您必须改为2 <= a && a <= 5
  4. 以下代码打印, !

    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

这不会有两个原因:

  1. 不支持该格式。
  2. 大于32且大于64的数字只是大于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 && <= '@')