我想用system.in读入一个字符串,比如this is a boy,然后输出
this
is
a
boy
但是为什么结果错误呢?
import java.util.StringTokenizer;
import java.io.*;
public class TestTokenizer
{
public static void main(String []args)
{
String source="";
System.out.println("please input the text:");
try{
int intS=System.in.read();
 
source=String.valueOf(intS);  }
  catch(IOException e){
   System.out.println("dddd");
  }
StringTokenizer st=new StringTokenizer(source);
System.out.println(st.countTokens());
while(st.hasMoreTokens())
{
String value=st.nextToken();/*返回到下一个分隔符的字符*/
System.out.println(value+"   "+st.countTokens());

}
}
}

解决方案 »

  1.   

    import java.util.StringTokenizer;
    import java.io.*;public class TestTokenizer {
        public static void main(String[] args) {
            String source = "";
            System.out.println("please input the text:");
            try {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        System.in));
                source = in.readLine();        } catch (IOException e) {
                System.out.println("dddd");
            }
            StringTokenizer st = new StringTokenizer(source);
            System.out.println(st.countTokens());
            while (st.hasMoreTokens()) {
                String value = st.nextToken();/* 返回到下一个分隔符的字符 */
                System.out.println(value + "   " + st.countTokens());        }
        }
    }
      

  2.   

    楼主的System.in.read()只是读了一个字符,而不是整个串。
      

  3.   

    import java.util.StringTokenizer;
    import java.io.*;public class TestTokenizer {
        public static void main(String[] args) {
            String source = "";
            System.out.println("Please input the text: ");
            try {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        System.in));
                source = in.readLine();
                StringTokenizer st = new StringTokenizer(source);
                System.out.println(st.countTokens());
                while (st.hasMoreTokens()) {
                    String value = st.nextToken();
                    System.out.println(value + "   " + st.countTokens());
                }
            } catch (IOException e) {
                System.out.println("Read error!");
            }
        }
    }
    建议将处理放在try中。
      

  4.   

    System.in.read()只是读了一个字符,而不是整个串。
    应该是System.in.readline();