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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涉江 中级黑马   /  2014-9-24 10:54  /  1388 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 涉江 于 2014-9-26 18:03 编辑

第15行提示,s1 never closed,请问该用什么命令关闭?
  1. package com.itheima;

  2. /**
  3. 2、 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
  4. 思路:
  5. 1.将阿拉伯数字与汉字一一对应,然后一一调用
  6. 2.键盘输入是string类型,多位数字需要分割成单个数
  7. */
  8. import java.util.Scanner;
  9. public class Test2
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                 String[] s={"零","一","二","三","四","五","六","七","八","九"};
  14.                 Scanner s1=new Scanner(System.in);
  15.                 String str=s1.nextLine();
  16.                 for(int i=0;i<str.length();i++)
  17.                 {
  18.                         int c=str.charAt(i)-'0';
  19.                         if(c>=0&& c<10)
  20.                         {
  21.                                 System.out.println(s[c]);
  22.                         }
  23.                         else
  24.                         {
  25.                                 System.out.println("不在范围内!"+"\n");
  26.                         }
  27.                 }
  28.         }
  29. }
复制代码

14 个回复

倒序浏览
s1.close();
回复 使用道具 举报

多谢,解决了s1没有关闭的问题,但是这段代码为什么没法执行呢?编译没问题,eclipse里没反应。
回复 使用道具 举报
.....你要在控制台输入数据,回车确认才会有反应的。不然String str=s1.nextLine();这一语句会阻塞程序运行。修改了你的代码,再在我的理解上写了一个,仅供参考。
public static void main(String[] args)
                {
                            /*Scanner s=new Scanner(System.in);
                        String out="";
                        for(int in=s.nextInt();in>0;in/=10)
                        {
                                switch(in%10){
                                case 0:out="零"+out;break;
                                case 1:out="一"+out;break;
                                case 2:out="二"+out;break;
                                case 3:out="三"+out;break;
                                case 4:out="四"+out;break;
                                case 5:out="五"+out;break;
                                case 6:out="六"+out;break;
                                case 7:out="七"+out;break;
                                case 8:out="八"+out;break;
                                case 9:out="九"+out;break;
                                default :break;
                                }
                        }
                        s.close();
                        System.out.println(out);*/
                        String[] s={"零","一","二","三","四","五","六","七","八","九"};
                Scanner s1=new Scanner(System.in);
                String str=s1.nextLine();
                for(int i=0;i<str.length();i++)
                {
                        int c=str.charAt(i)-'0';
                        if(c>=0&& c<10)
                        {
                                System.out.print(s[c]);
                        }
                        else
                        {
                                System.out.println("不在范围内!"+"\n");
                        }
                }
                s1.close();
                }
回复 使用道具 举报
好混乱哦,重新发一个。。。。
  1. public static void main(String[] args)
  2.                 {
  3.                             /*Scanner s=new Scanner(System.in);
  4.                         String out="";
  5.                         for(int in=s.nextInt();in>0;in/=10)
  6.                         {
  7.                                 switch(in%10){
  8.                                 case 0:out="零"+out;break;
  9.                                 case 1:out="一"+out;break;
  10.                                 case 2:out="二"+out;break;
  11.                                 case 3:out="三"+out;break;
  12.                                 case 4:out="四"+out;break;
  13.                                 case 5:out="五"+out;break;
  14.                                 case 6:out="六"+out;break;
  15.                                 case 7:out="七"+out;break;
  16.                                 case 8:out="八"+out;break;
  17.                                 case 9:out="九"+out;break;
  18.                                 default :break;
  19.                                 }
  20.                         }
  21.                         s.close();
  22.                         System.out.println(out);*/
  23.                         String[] s={"零","一","二","三","四","五","六","七","八","九"};
  24.                 Scanner s1=new Scanner(System.in);
  25.                 String str=s1.nextLine();
  26.                 for(int i=0;i<str.length();i++)
  27.                 {
  28.                         int c=str.charAt(i)-'0';
  29.                         if(c>=0&& c<10)
  30.                         {
  31.                                 System.out.print(s[c]);
  32.                         }
  33.                         else
  34.                         {
  35.                                 System.out.println("不在范围内!"+"\n");
  36.                         }
  37.                 }
  38.                 s1.close();
  39.                 }
复制代码
回复 使用道具 举报
夕默 发表于 2014-9-24 12:11
好混乱哦,重新发一个。。。。

import java.util.Scanner; 加上这个以后可以运行了,多谢答疑。
回复 使用道具 举报
涉江 中级黑马 2014-9-24 13:24:32
7#
夕默 发表于 2014-9-24 12:11
好混乱哦,重新发一个。。。。

不过让人郁闷的是,我用eclipse没法直接运行,在命令行里编译运行就可以输入转换,真是让人无语。
回复 使用道具 举报
涉江 中级黑马 2014-9-24 13:27:25
8#
夕默 发表于 2014-9-24 12:11
好混乱哦,重新发一个。。。。

Window->Show View->Console
刚才百度了一下,在这里可以打开控制台,做基础题前都是用记事本,没用过ide,谢谢这位同学。
回复 使用道具 举报
夕默 中级黑马 2014-9-24 14:35:38
9#
涉江 发表于 2014-9-24 13:27
Window->Show View->Console
刚才百度了一下,在这里可以打开控制台,做基础题前都是用记事本,没用过id ...

我是直接点击运行,然后控制台什么的就自己出来了。做TCP的时候也可以直接运行,再切换控制台就可以满足需求。
回复 使用道具 举报
涉江 发表于 2014-9-24 13:24
不过让人郁闷的是,我用eclipse没法直接运行,在命令行里编译运行就可以输入转换,真是让人无语。 ...

都可以直接运行的。
回复 使用道具 举报
夕默 发表于 2014-9-24 14:35
我是直接点击运行,然后控制台什么的就自己出来了。做TCP的时候也可以直接运行,再切换控制台就可以满足 ...

我直接运行的时候,没有像执行别的代码那样弹出控制台,必须自己手动打开,然后输入阿拉伯数字,就会翻译成中文了。
回复 使用道具 举报
涉江 发表于 2014-9-24 16:45
我直接运行的时候,没有像执行别的代码那样弹出控制台,必须自己手动打开,然后输入阿拉伯数字,就会翻译 ...

控制台不是像CMD那样弹出来的,是在eclipse的下方有一个console。
回复 使用道具 举报
大家水平很高啊
回复 使用道具 举报
楼主第19行为什么要减去0字符呢?求解释
回复 使用道具 举报
涉江 发表于 2014-9-24 11:37
多谢,解决了s1没有关闭的问题,但是这段代码为什么没法执行呢?编译没问题,eclipse里没反应。 ...

和文件没有直接发生关系的流,不关也可以,管子不通,问题不在这里
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马