io-java:在控制台输入字符串,内容明明和自己定义的字符串相同,却不相等?

问题描述

java:在控制台输入字符串,内容明明和自己定义的字符串相同,却不相等?
我在控制台用InputStreamReader和BufferReader输入字符串并获取,但是获取的字符串和我自己定义的字符串内容明明相同,用==判断,结果却为false,为什么?

代码如下:
import java.io.*;
public class demo4{
public static void main(String args[]){
try{
String a = ""abc"";
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String b = br.readLine();

    if(a == b){            System.out.println(""ok"");        }else{            System.out.println(""not ok"");            System.out.println(b);        }    }catch(Exception e){        e.printStackTrace();        }}

}

解决方案

String 值比较用equals ==是比较地址

解决方案二:
判断字符串是否相等,采用equals

时间: 2024-11-08 17:22:58

io-java:在控制台输入字符串,内容明明和自己定义的字符串相同,却不相等?的相关文章

Java中控制台输入数字的解决方法

解决|控制   控制台输入在Java中有一个System.in.read(),但是跟C#中的Console.ReadLine()不同,不知道为何,我即使象在C#中使用强制类型转换也不可以得到输入的数字.这是因为,Java将Enter的键也输入进去了. 但是解决的方法还是有的,下面给一个小的例子,是将加仑转换成升的例子: /* * This program converte gallons to liters, users can input numbers. *  * Call this pro

Java编程那些事儿89——读取控制台输入

11.3.2 读取控制台输入 前面介绍了使用IO类实现文件读写的示例,其实在很多地方还需要使用到IO类,这里再以读取控制台输入为例子来介绍IO类的使用. 控制台(Console)指无图形界面的程序,运行时显示或输入数据的位置,前面的介绍中可以使用System.out.println将需要输出的内容显示到控制台,本部分将介绍如何接受用户在控制台中的输入. 使用控制台输入是用户在程序运行时和程序进行交互的一种基础手段,这种手段是Windows操作系统出现以前,操作系统位于DOS时代时,用户和程序交互

Java从控制台读入数据的几种方法总结_java

这里记录Java中从控制台读入信息的几种方式,已备后查! (1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法) public class TestConsole1 { public static void main(String[] args) { String str = readDataFromConsole("Please input string:); System.out.println("The information from console: + st

c-请问匹配字符串中重复字符串内容的正则表达式怎么写?

问题描述 请问匹配字符串中重复字符串内容的正则表达式怎么写? 匹配字符串中重复的字符串内容的正则表达式 或者匹配不重复的字符串内容? 解决方案 ASP 正则表达式匹配字符串提取正则表达式 字符串完全匹配获取正则表达式匹配的字符串 解决方案二: http://blog.csdn.net/zhulinu/article/details/17148511 解决方案三: 用"+"来表示重复一次或多次,建议看看正则表达式

java控制台输入示例分享_java

java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的输入流,再桥接至字符流从字符流中读入数据.只能读取字符串,若需要读取其他类型的数据需要手工进行转换.代码如下: 复制代码 代码如下: BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = null;try{

replace-利用java io逐行操作文件并替换内容

问题描述 利用java io逐行操作文件并替换内容 A文件: as1 dfg1 hjkl1 逐行读取A文件的内容,将1替换成 一 后将替换后的内容写到B文件中 解决方案 BufferedReader readBuffer = new BufferedReader(new FileReader( new File("D:/aaaa.txt"))); BufferedWriter write = new BufferedWriter(new FileWriter(new File(&quo

printf-c语言去除控制台输入字符串的空格

问题描述 c语言去除控制台输入字符串的空格 #include void f(char *); int main(void) { char str[100]; scanf("%s", str); f(str); return 0; } void f(char *str) { char str1[100]; int i = 0, j = 0; while(str[i] != '') { if(str[i] != ' ') { str1[j] = str[i]; j++; } i++; }

<急急>java控制台输入的简单问题

问题描述 输入若干行字符串,行数未知,Enter键后换行输入而不是执行程序,Ctrl+R键终止输入执行程序,我知道是用KeyEvent监听键盘但不知道具体怎么实现求高手指点, 解决方案 解决方案二:很不了解你说的是什么.你用for循环控制一下啊..解决方案三:用for循环,getline()或者用流~解决方案四:不能用循环,输入的内容是未知的,不能用遇到某个字符或字符串之后跳出循环,就是说我现在输入了5行(不一定是5行),然后我输入完了,然后我在键盘上打CTRL+Z,就能提交输入,执行程序解决方

java集合问题-控制台录入将内容添加到集合中,但是在集合遍历的时候变成了死循环,代码在下面,求指点迷津

问题描述 控制台录入将内容添加到集合中,但是在集合遍历的时候变成了死循环,代码在下面,求指点迷津 ArrayList<String> al = new ArrayList<String>(); Scanner sc = new Scanner(System.in); while(sc.hasNext()) { String st = sc.next(); if("quit".equals(st)){ break; } al.add(st); } Iterator