A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘泰 中级黑马   /  2012-3-26 19:25  /  2221 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在使用MyEclipse的时候,要求输入N行字符串。
如:class Number
{
    public static void main(String args[])
{         
            Scanner input = new Scanner(System.in);
            System.out.println("输入字符串的行数");
            int N = input.nextInt();
            String str = "";
            for(int i = 0 ; i < N; i++)
            {
                    str +=input.next();
            }
            System.out.println(str);
            
  
           }
                                    
  }
输入的格式为:
jij dkjdfj jkj,为什么在按回车键的时候,直接打印出来了,
我想是不是空格在输入的时候也是换行哈,如果不是,那应该怎么解释,还有,怎么样输入一行字符串的时候,空格也算是一个字符输入。比如:输入3行,输入格式为:
      djkljddjfj djk dkjf (回车)
     djdjkjfdsjfkdsjlfj&(&dkljf *&^lkds jf  (回车)
     3odndkjh (回车)
  这样才是三行,怎么样解决空格的问题?

4 个回复

倒序浏览
本帖最后由 鲍亚坤 于 2012-3-26 20:42 编辑
  1. import java.util.*;
  2. class Number
  3. {
  4.        
  5.      public static void main(String args[]) throws Exception
  6.   {         
  7.              Scanner input = new Scanner(System.in);
  8.              System.out.println("输入字符串的行数");
  9.              int N = input.nextInt();
  10.              String str = "";
  11.              for(int i = 0 ; i <= N; i++)
  12.              {      
  13.                      str +=input.nextLine();
  14.              }
  15.              System.out.println(str);
  16.             
  17.    
  18.             }
  19.                                       
  20.   }
复制代码
你试试,我的。。
主要是str +=input.nextLine();这句话
回复 使用道具 举报
Scanner不太会实现,用BufferedReader大致实现了。仅供参考
  1. public class Number
  2. {
  3.         public static void main(String args[]) throws Exception
  4.         {
  5.                 System.out.println("输入字符串的行数");
  6.                 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  7.                
  8.                 StringBuffer buf=new StringBuffer();
  9.                 String line="";
  10.                 while(null!=(line=br.readLine()))
  11.                 {
  12.                         if(line.equals("exit"))
  13.                         {
  14.                                 break;
  15.                         }
  16.                         buf.append(line);
  17.                         buf.append("\n");
  18.                 }
  19.                
  20.                 System.out.println(buf.toString());
  21.         }
  22. }
复制代码
回复 使用道具 举报
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
回复 使用道具 举报
鲍亚坤 发表于 2012-3-26 20:32
你试试,我的。。
主要是str +=input.nextLine();这句话

嗯,用nextLine就可以做到了,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马