判断输入是否是包含双引号的字符串
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,这两个判断明显错误,在判断部分还有优化空间。