初学java要写个小程序,打印从ch1到ch2之间的字符,每行按指定个数打印。ch1和ch2是用户输入的,这个关于获取单个字符的问题已经搞了我很久(orz...),想问问高手们到底我的程序问题出在哪里呢?@_@  
import java.io.*;
import java.util.Scanner;
class qxq
{
public static void main(String[] args) {
int ch1;
int ch2;    //总是觉得这个ch2没有读取任何数似的System.out.print("打印字符,请输入打印个数: "); 
Scanner in = new Scanner(System.in);
int m = in.nextInt();try
{
System.out.print("请输入:");
ch1=System.in.read();System.out.print("请输入:");
ch2=System.in.read();System.out.println("该字符为:"+(char)ch1);
System.out.print("请输入:");
ch2=System.in.read();
System.out.println("该字符为:"+(char)ch2);
for (int i = 0; i < m; i++)
  {   
    System.out.print((char)((char)ch1+Math.random()*((char)ch2-(char)ch1+1)));
    System.out.println();
  }}
catch(IOException e){}
}}

解决方案 »

  1.   


    import java.util.Scanner;class qxq {
    public static void main(String[] args) {
    int ch1;
    int ch2; // 总是觉得这个ch2没有读取任何数似的 System.out.print("打印字符,请输入打印个数: ");
    Scanner in = new Scanner(System.in);
    int m = in.nextInt();
    System.out.print("请输入:");
    ch1 = in.nextInt();
    System.out.println("该字符为:" + (char) ch1);
    System.out.print("请输入:");
    ch2 = in.nextInt();
    System.out.println("该字符为:" + (char) ch2);
    int i=0;
    for(int j=ch1;j<=ch2;j++){
    System.out.print((char) j);
    if((i++)%m==0)
    System.out.println();
    }

    }
    }
    给你改了一下
      

  2.   

    打印字符,请输入打印个数: 4
    请输入:w
    Exception in thread "main" java.util.InputMismatchException
            at java.util.Scanner.throwFor(Unknown Source)
            at java.util.Scanner.next(Unknown Source)
            at java.util.Scanner.nextInt(Unknown Source)
            at java.util.Scanner.nextInt(Unknown Source)
            at qxq.main(qxq.java:12)   楼上的高人,这个
      

  3.   

    import java.util.Scanner;class qxq {
    public static void main(String[] args) {
    int ch1;
    int ch2; // 总是觉得这个ch2没有读取任何数似的 System.out.print("打印字符,请输入打印个数: ");
    Scanner in = new Scanner(System.in);
    int m = in.nextInt();
    System.out.print("请输入:");
    ch1 = in.next().charAt(0);
    System.out.println("该字符为:" + (char) ch1);
    System.out.print("请输入:");
    ch2 = in.next().charAt(0);
    System.out.println("该字符为:" + (char) ch2);
    int i=0;
    for(int j=ch1;j<=ch2;j++){
    System.out.print((char) j);
    if((i++)%m==0)
    System.out.println();
    }

    }
    }
    我以为你要在控制台输入数字...
    这样就可以了
      

  4.   


    import java.io.*;
    public class Sysin
    {
       public static void main(String[] args)
       {
          int x,y;
          InputStream is = System.in;
          try
          {
             x=is.read();
             y=is.read();
             for(int i=x;i<=y;i++)
             {
                System.out.println((char)i);
             }
          }catch(Exception e)
          {
             e.printStackTrace();
          }
       }
    }贴一个这个给你看看...
      

  5.   

    楼上的真实太高手了。结分,至于另一个高手。orz 您的东西我没看明白要讲的是什么啊