当前位置: 首页 > 知识库问答 >
问题:

试图创建一个可以识别数字、字符、字符串和特殊符号(如@和$)的程序

秦承允
2023-03-14
import java.util.Scanner;    
public class LetterOrDigit {    
    public static void main(String[] args) {    
            Scanner input = new Scanner(System.in);    
            System.out.print("Enter a character: ");    
            char ch = input.next().charAt(0);    
            if(ch >= 'a' && ch <= 'z') {    
                System.out.print(ch + " is an lower-case letter");    
            }if((ch >= 'A' && ch <= 'Z')) {    
                System.out.print(ch + " is an upper-case letter");    
            }else if(ch >= '0' && ch <= '9') {    
                System.out.print(ch + " is a digit");    
            } else {    
                System.out.print(ch + " is neither a letter nor a digit");    
    }    
}  

这就是我所拥有的,我可以识别大写和小写以及数字,但我需要帮助,如果它有abc,我需要它出来为“无效”,如果它是@或$等符号,我需要它是“既不是字母也不是数字”。

共有1个答案

陆俊捷
2023-03-14

如果输入是abc,则检查输入长度,如果它大于1则无效。例如:

String ip = input.next();
ch = ip.charAt(0) ;  
if(ip.length()>1){
    System.out.print("invalid"); 
}else if(ch >= 'a' && ch <= 'z') { 
    // rest of your code

要检查特殊字符,可以使用regex模式。使用正则表达式模式可以检查字符是否为特殊符号。

Pattern regex = Pattern.compile("[^A-Za-z0-9 ]");
String ip = input.next();
if(regex.matcher(ip).find())){ 
    // it returns true if the input contains any other character rather than letter,digits and spaces.
    //your code 
}

另外,您可以事先在String变量中预定义符号,并检查给定的输入是否是特殊字符。例如:-

String specialChars = "()\"{}_[]|\\?/<>,./*!@#$%^&*"; // if I missed any special character add it please 
if(specialChars.contains(ip)){
    //your logic
}
 类似资料:
  • 问题内容: 我正在为法国客户做一些工作,因此需要处理带重音符号的字符。但是我遇到了很多困难,希望解决方案很简单,并且有人可以向我指出。 字符串: 转换为: 请注意,带重音符号的字符缺失- 在 ê* 后面紧跟着 t ,在 é 后面紧跟着 m 。 * 我尝试使用StringEscapeUtils来成功转义某些字符,例如 ă 。我还构建了自己的转义功能,该功能产生相同的结果( ă 可以工作, ê 不会)

  • 我试图创建一个表示JSON对象数组的字符串文字,所以我想到了使用字符串插值特性,如下面的代码所示: 现在我想使用逐字字符串,这样我就不必使用反斜杠来转义双引号。因此,通过这个答案,我了解到逐字字符串和字符串插值可以一起使用。所以我改变了我的代码如下: 但它无法编译。如果我的用法有任何错误,或者在这种情况下无法使用C#的逐字字符串功能转义双引号,有人能帮我吗?

  • 我想检查一个字符串是否包含特殊字符,比如!@#$%^&*.,<>/\'“;:?如果字符串至少包含其中一个字符,则返回true。 我尝试使用以下regex脚本:

  • 我有一个从xml文档中读取数据的程序。在这个xml文档中,一些属性包含特殊字符,如“\n”、“t”等。 有没有一种简单的方法可以将所有这些字符串替换为实际的字符,或者我必须像下面的例子一样为每个字符手动替换? 手动示例: 编辑: 我正在寻找某种方法来处理字符串,就像这样的转义字符串(尽管我知道这是行不通的)

  • 在这个问题之前,我先要说明一个事实,那就是我学习编程才一个月,而这个学校的作业却把我难住了。具体地说,它是摩尔斯电码到英语翻译器(反之亦然)...这是我被困住的部分:

  • 问题内容: 如果字符串中除了下划线以外不包含任何特殊字符,则只能在其程序中使用。我该如何检查? 我尝试使用unicodedata库。但是特殊字符只是被标准字符所代替。 问题答案: 您可以像这样使用和运行 用这条线 我们正在准备不允许使用的标点符号列表。如您所愿,我们正在从列表中删除并准备新的。因为在集合中查找速度更快。 如果至少一个字符位于中,则函数将返回。 编辑: 如评论中所述,这是正则表达式解