StreamTokenizer 输入字符串问题

mingchaoyan 2010-05-30 08:33:05
import java.io.*;

public class Main {
public static void main(String[] agrs) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
in.nextToken();
String s = in.sval;
System.out.println(s);
}
}

输入全是字母比如asdf,输出该字符串;
但当输入字符串有非字母时 比如 <-20-----> 输出就是null,
我知道如果输入是“<-20----->” (即加引号)可以输出<-20-----> 但问题是现在不能加“”,不能用Scanner(这个比较慢)

谁能指出如何修改,谢谢
...全文
488 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingchaoyan 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cwjieno1 的回复:]

为什么不用BufferReader·一定要用StreamTokenizer
[/Quote]
BufferReader 读字符串好,但没有读int的方法
uqortbsa 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 mingchaoyan 的回复:]
import java.io.*;

public class Main {
public static void main(String[] agrs) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
in.wordChars(45,45);
in.wordChars(60,60);
in.wordChars(62,62);
in.nextToken();
String s = in.sval;
System.out.println(s);
}
}
mingchaoyan 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wenzheng38 的回复:]

//为什么非要调用这个字段
String s = in.sval;


String s = in.toString(); //这个不行吗?
[/Quote]
这个不行 比如
输入 141
输出 Token[n=141.0], line 1

也不是说非要调那个字段
只要用StreamIokenizer 可以读取字符串就行了,继续关注
wenzheng38 2010-05-30
  • 打赏
  • 举报
回复
//为什么非要调用这个字段
String s = in.sval;


String s = in.toString(); //这个不行吗?
dracularking 2010-05-30
  • 打赏
  • 举报
回复
这样吧


StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
in.nextToken();

if(in.ttype == StreamTokenizer.TT_NUMBER){
System.out.println(in.nval);
} else {
System.out.println(in.sval);
}
alskJSTL 2010-05-30
  • 打赏
  • 举报
回复
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
就可以从控制台读取字符或字符串
cwjieNo1 2010-05-30
  • 打赏
  • 举报
回复
为什么不用BufferReader·一定要用StreamTokenizer

62,634

社区成员

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

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