为什么我不能在数组中打印特殊字符?

时间:2019-12-30 07:49:27

标签: java arrays

import java.util.*;
public class Hello {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        char[] arr=s.toCharArray();
        for(int i=0;i<s.length();i++)
        {
            if(arr[i]<97&&arr[i]>122)
            {
                System.out.print(arr[i]);
            }
        }

    }
}

输入:snn:rvb“ rv [brb \ rb 输出:无输出

1 个答案:

答案 0 :(得分:0)

来自Operators

  

&&逻辑与
  ||逻辑或

在您的代码中,您有&&,如下所示:

if(arr[i]<97 && arr[i]>122){
   System.out.print(arr[i]);
}

这不是真的,因为一次只能满足一个条件。

您应该使用||,当其中任何一个为真时,它将打印。

if(arr[i]<97 || arr[i]>122){
   System.out.print(arr[i]);
}

您可以直接使用charAt()方法并使用char代替ASCII值,如下所示:

if(s.charAt(i) < 'a' || s.charAt(i) < 'z'){
   System.out.print(s.charAt(i));
}