System.in的输入字符串的比较问题

qq_33186495 2016-03-17 01:10:25
问题:当输入add字符串时,总是判断为false
代码:
package mass;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

public class ArrayListTest {

ArrayList<String > al = new ArrayList<String>();
public int add(String s)
{
al.add(s);
return al.size()-1;
}

public void look(int i)
{
if(i<1 || i> al.size())
{
System.out.println("输入错误,超出范围或者不存在");
return;
}
System.out.println(al.get(i-1));
}

public void list()
{
Iterator<String> iter = al.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
}

public void remove(int i)
{
if(i < 1 ||i>al.size())
{
System.out.println("输入错误,超出范围或不存在");
return;
}
System.out.println(al.get(i-1));
}

public void clear()
{
al.clear();
}
public static void main(String[] args) throws Exception {
System.out.println("-------------------");
System.out.println(" add指令 :增加");
System.out.println(" look指令 :查看");
System.out.println(" list指令 :打印列表");
System.out.println(" remove指令 :删除");
System.out.println(" clear指令 :清除数据");
System.out.println("-------------------");
BufferedInputStream bis = new BufferedInputStream(System.in);
byte[] buffer = new byte[512];
int length;
String s;
ArrayListTest alt = new ArrayListTest();
while((length = bis.read(buffer,0,buffer.length)) != -1)
{
s = new String(buffer,0,length);
System.out.println(s.equals("add"));
if(s.equals(new String("ss")))
{
alt.list();
}
else if(s.equals(new String("add")))
{
System.out.println("请输入你想添加的字符串");
length = bis.read(buffer,0,buffer.length);
s = new String(buffer,0,length);
alt.add(s);
}
else if (s.equals("look"))
{
bis.read(buffer,0,buffer.length);
int i = buffer[0];
alt.look(i);
}
else if(s.equals("clear"))
{
alt.clear();
}
else if(s.equals("remove"))
{
bis.read(buffer,0,buffer.length);
int i = buffer[0];
alt.remove(i);
}
}
}
}
































...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
领结 2016-03-17
  • 打赏
  • 举报
回复
我也不太懂这个缓冲,不过我把你的main函数那一部分换成这样好像就没要false的问题了

		DataInputStream bis = new DataInputStream(new BufferedInputStream(System.in));
		byte[] buffer = new byte[512];
		int length;
		String s;
		ArrayListTest alt = new ArrayListTest();
		while ((s=bis.readLine()).length()!=0) {
			if (s.equals(new String("ss"))) {
				alt.list();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧