java printf无法打印char数组

时间:2017-12-10 16:38:47

标签: java

我正在寻找java中代码的帮助,因为我只想打印ASCII的大写字母。所以我创建了一个数组并运行for循环。我创建了一个if条件来访问65到90之间的字符,然后我使用这种格式来打印值系统。

out.printf("%c : ",ch[x]).

不幸的是我把垃圾当作输出。 这是完整的代码:

           for(int x=0; x<ch.length; x++) {
            if(ch[x]>=65||ch[x]<=90) {
               System.out.printf("%c ",ch[x]);
            }
          }

2 个答案:

答案 0 :(得分:1)

正如@YCF_L所说,使用&&,我可能会推荐forEach:

char[] ch = new char[]{'A', 'z', 'S', 'Z', 'H', '1', 'o'};
for (char c : ch) {

    if (c >= 65 && c <= 90) {
        System.out.printf("%c ", c);
    }
}

<强>输出

A S Z H 

ideone demo

答案 1 :(得分:0)

只需使用isUpperCase()方法:

for(int x=0; x<ch.length; x++) {
        if(isUpperCase(ch[x])) {
           System.out.printf("%c ",ch[x]);
        }
      }

如果您不想使用该方法:

for(int x=0; x<ch.length; x++) {
        if(ch[x]>=65 && ch[x]<=90) {
           System.out.printf("%c ",ch[x]);
        }
      }