判断输入是否是包含双引号的字符串

判断输入是否是包含双引号的字符串

public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);	
	String input = scanner.nextLine();
       if(input.length()<2){
            System.out.println("false"); //如果字符串的长度小于2,则输出错误
        }else if(input.charAt(1)=='"'){
            System.out.println("false"); //如果字符串索引值1对应的值为",也就是说含有两个字符串,则输出错误
        }else if(input.charAt(2)=='\\'){
            System.out.println("false"); 
        }else if(input.charAt(1)=='\\'){
            System.out.println("true");  //使"\""通过验证,\"表示双引号
        }
        else if(input.charAt(input.length()-2)=='"'){
            System.out.println("false"); //如果"前没有接上\,那么出现"时就会输出错误
        }
        else if(input.charAt(0)=='"' && input.charAt(input.length()-1)=='"'){
            System.out.println("true"); //标准输入,前后两个双引号包含内容,输出正确
        }else{
            System.out.println("false"); //不满足,输出错误
        }
}

代码中charAt()表示字符串返回对应索引的值,这里因为是输入,因此包含了所有输入字符,也就是说将双引号" "也包含了进去,为而通过对比下面一段代码,最终输出的值为 w 而非 " ,原因即被双引号包裹字符串才成立,因此也从字符串内部开始进行对应索引值的提取,若将 “www.runoob.com” 改为 “‘www.runoob.com’” ,就相当于上面代码中从字符串开始进行提取,charAt(0)对应的值为 ’ 。

public static void main(String[] args) {
    String s = "www.runoob.com";
    char result = s.charAt(0);
    System.out.println(result);
}

这段代码实际上还有一些bug,比如当输入\\n 或是 \\x 时,判断为true,当输入"\" 时,判断false,这两个判断明显错误,在判断部分还有优化空间。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值