java中字符串比较,我用的是equals比较为什么总是FALSE
importjava.io.*;publicclassBye{publicstaticvoidmain(String[]args)throwsException{Data...
import java.io.*;
public class Bye{
public static void main(String[] args) throws Exception{
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
dis.read(b);
String s = new String(b);
System.out.println(s);
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容不等");
}
}
我输入的是bye但是也总是返回输入的内容不等,要如何更改才行 展开
public class Bye{
public static void main(String[] args) throws Exception{
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
dis.read(b);
String s = new String(b);
System.out.println(s);
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容不等");
}
}
我输入的是bye但是也总是返回输入的内容不等,要如何更改才行 展开
11个回答
展开全部
DataInputStream 主要用于输入字节数据凳做型。。键盘输入的是字符,所以有些“水土不服”
建议用专门用来扫描字符的Scanner比较合适
把DataInputStream dis = new DataInputStream(System.in);
改成
Scanner sc=new Scanner(System.in);
然后
String s =sc.nextLine();//从键盘读入胡岁一行
if(s.equals("bye")==true)
System.out.println("输入的内容相枣猜等");
然后必然正确啊
建议用专门用来扫描字符的Scanner比较合适
把DataInputStream dis = new DataInputStream(System.in);
改成
Scanner sc=new Scanner(System.in);
然后
String s =sc.nextLine();//从键盘读入胡岁一行
if(s.equals("bye")==true)
System.out.println("输入的内容相枣猜等");
然后必然正确啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符串s带有回车和空格.去掉就好了
s = s.replaceAll( "[\\差改n\\r]*", "").trim();
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
try {
dis.read(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String s = new String(b);
s = s.replaceAll( "[\\漏庆铅n\\r]*", "").trim();
System.out.println(s);
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容返好不等");
}
s = s.replaceAll( "[\\差改n\\r]*", "").trim();
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
try {
dis.read(b);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String s = new String(b);
s = s.replaceAll( "[\\漏庆铅n\\r]*", "").trim();
System.out.println(s);
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容返好不等");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建bye数组时长度错误,你得到的棚启String是一个长度为100的链者如,能和bye比较吗, 你试试吧byte【3】就嫌猛正确了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误是因为你byte定义的野蚂长度问题
如果你输入bye定义为3肯定是正确的
用下面的来判断吧
DataInputStream dis = new DataInputStream(System.in);
String s = new String(dis.readLine());
System.out.println(s);
if(s.equals("bye")){
System.out.println("输卖脊扮入的内容相等中灶");
System.exit(-1);
}
System.out.println("输入的内容不等");
如果你输入bye定义为3肯定是正确的
用下面的来判断吧
DataInputStream dis = new DataInputStream(System.in);
String s = new String(dis.readLine());
System.out.println(s);
if(s.equals("bye")){
System.out.println("输卖脊扮入的内容相等中灶");
System.exit(-1);
}
System.out.println("输入的内容不等");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.DataInputStream;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
dis.read(b);
String s = new String(b);
System.out.println(s+"aa"); //复制这段代码 你运行试神宴试闹友 就知道怎么回事了
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容不等");
}
}
---------------怕你不采用 修改下回答-----------------
你构造String 用地 byte数组 是长度100的液瞎槐 ... String s="bye 好长的空格 ";
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(System.in);
byte b[] = new byte[100];
dis.read(b);
String s = new String(b);
System.out.println(s+"aa"); //复制这段代码 你运行试神宴试闹友 就知道怎么回事了
if(s.equals("bye")==true){
System.out.println("输入的内容相等");
System.exit(-1);
}
System.out.println("输入的内容不等");
}
}
---------------怕你不采用 修改下回答-----------------
你构造String 用地 byte数组 是长度100的液瞎槐 ... String s="bye 好长的空格 ";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询