2 freedom wings5 freedom_wings5 于 2016.03.30 22:59 提问

java,scanner输入的字符串,如输入yes判断却不等于yes

贴一贴

 package test;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         Scanner scan=new Scanner(System.in);
         System.out.println("input now");
         String str=scan.next();
         if(str != "yes")
             System.out.println(str);
    }

}

我输入就是输入yes的,下面的if判断就是不相等,应该是scan.next()的返回值中带了什么转义字符吧,这个问题怎么解决?有什么方法能查看到其中的转义字符呢?

4个回答

wangjinjun
wangjinjun   2016.03.30 23:27
已采纳

String是个类,用==或!=比较是比较的内存地址,应该使用equals方法进行比较

caozhy
caozhy   Ds   Rxr 2016.03.30 23:03
 if(!str.equals("yes"))
qq_25827845
qq_25827845   2016.03.31 09:18

前面人回答的不错。equals才是比较内容是否相同

CSDNXIAOD
CSDNXIAOD   2016.03.30 23:02

java中Scanner输入字符串和BufferedReader输入字符串的区别
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
输入一个字符,是数字字符输出YES!,否则输出NO!.cpp
#include using namespace std; int main() {  char g;     cin>>g;     if(g>=48&&g        cout    else       cout return 0; }
判断一个字符串是否是回文,如果是,返回字符串“yes”,如果不是,返回字符串“no”
判断一个字符串是否是回文,如果是,返回字符串“yes”,如果不是,返回字符串“no”。 #include #include void func(const char *str,int len) { int i = 0,j = len - 1; while(i < j) { if(str[i] == str[j]) { i++; j--; } else {
linux shell中yes_or_no()函数返回值的问题
在看Linux 程序设计的时候,碰到下面的问题; #!/bin/sh yes_or_no() { echo "Is you name $* ?" while true do echo -n "Enter yes or no : " read x case "$x" in y|yes ) return 0;; n|no ) return 1;
第四周——闰年判断
2 闰年判断(4分) 题目内容: 从键盘任意输入一个公元年份(大于等于1),判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。要求对输入数据进行合法性判断。 已知符合下列条件之一者是闰年: (1)能被4整除,但不能被100整除; (2)能被400整除。 运行结果示例1: 2015↙
【BASH】如何得到用户输入的YES或NO
<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } --> 问题:你需要从用户那里得到简单的yes或no的输入,并且你期望做到用户界面的友好,做到能够区分大小写,并且提供用户点击Enter的默认选项。 解决方案如果是简单的行为,可以使用下面这个函数。#cookbook file
任意输入一个三位数,判断该书是否是水仙花数。若是输出“yes”,否则输出“no”。
#include <stdio.h>int main() { int x; int a,b,c; scanf("%d",&x); a=x%10; b=x/10%10; c=x/100; if(a*a*a+b*b*b+c*c*c==x) printf("yes\n"); else printf("no\n");
递归实现回文字符串判断
#include #include #include using namespace std; bool find(const char *str, int n) {     if(n     else if(str[0]==str[n-1]) return find(str+1, n-2);//去掉首尾两个,所以n-2     else return false; }
expect ssh首次登录自动判断(yes/no)?
v-lhb-prx01:/root/sbin# sh ./expect.sh spawn ssh root@192.168.32.16 The authenticity of host '192.168.32.16 (192.168.32.16)' can't be established. RSA key fingerprint is da:3a:61:09:e4:f6:46:d7:01:08
黑马程序员之C#编程基础学习笔记:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes,no),如果输入的是ye
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test7 {       calss Program       {             static void Main(string[] args)             {
java中Scanner输入字符串和BufferedReader输入字符串的区别
BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 在创建Scanner类的对象时,需要用System.in作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Sca