黑马程序员技术交流社区

标题: 如何从键盘接收一个字符串。。。。 [打印本页]

作者: ZHOU_XIAO_BING    时间: 2014-7-9 17:45
标题: 如何从键盘接收一个字符串。。。。
以下是我百度的程序,能够基本看懂,但是不知道如何运行,完全不懂是怎样接收字符串,并且编译后运行没有结果,我用的是Eclipse,求大神指点新人???
public static void main(String[] args){
//System.out.println("sdfggh");
               
                BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));//定义一个键盘输入流
                String line = buf.readLine();//从输入流中读取字符串
                byte[]b = line.getBytes();//把字符串转换成数组
                for (int x = 0;x<b.length;x++)//通过遍历的方式判断每一位是否字母,是的话,通过+-32来切换大小写
                {
                        int num = b[x];
                        if (num>=65 && num<=90 || num>=97 && num<=122)
                        {
                                b[x] = (byte) ((b[x]>=65 && b[x]<=90)?(b[x]+32): ( b[x]-32));
                        }
                }
                line = new String(b);//最后将字节数组转换成字符串
                System.out.println(line);
                buf.close();
作者: 非5莫属    时间: 2014-7-9 17:48
import java.util.Scanner;
public class Test7 {
        public static void main(String[] args){
                Scanner in=new Scanner(System.in);
                System.out.println("请输入字符串:");
                String str=in.next();
                char[] ch1=str.toCharArray();
                char[] ch2=new char[ch1.length];
                for(int i=0;i<ch1.length;i++){
                        ch2[i]=ch1[i];
                }
        }
}
你可以试试我的方法
作者: yangcy    时间: 2014-7-9 18:04
LZ,运行后,在控制台输入一行字符串,然后回车,出现结果。
另外,像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了。
这里给你个参考:
  1. import java.util.Scanner;

  2. public class Test {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 String str = sc.nextLine();
  6.                 String res = changStr(str);
  7.                 System.out.println(res);
  8.         }

  9.         private static String changStr(String str) {
  10.                 StringBuilder sb = new StringBuilder();
  11.                 // 遍历字符串,大小写互转
  12.                 for (int i = 0; i < str.length(); i++) {
  13.                         if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
  14.                                 sb.append((char) (str.charAt(i) - 32));
  15.                         } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
  16.                                 sb.append((char) (str.charAt(i) + 32));
  17.                         } else {
  18.                                 sb.append(str.charAt(i));
  19.                         }

  20.                 }
  21.                 return sb.toString();
  22.         }
  23. }
复制代码

作者: 赵顺超    时间: 2014-7-9 18:35
键盘用的字节流,然后看你的目的是哪。
作者: jwx555    时间: 2014-7-9 18:47
你肯定知道
  1. System.out
复制代码

这是输出,

对应的就有个System.in 用来接收键盘输入。输入的字直接被InputStreamReader字节流读入然后放到了缓冲区。

除了字节流 还可以通过
  1. Scanner sn = new Scanner(System.in) ;
  2. inputInt = sn.nextInt() ;
复制代码

这种方式获得键盘输入, 除了int 还有其他很多接收类型,可以查询API学习
作者: 王飞163    时间: 2014-7-10 00:06
yangcy 发表于 2014-7-9 18:04
LZ,运行后,在控制台输入一行字符串,然后回车,出现结果。
另外,像这种从键盘读取字符串类型的问题,一 ...

感谢分享
作者: 慕杰    时间: 2014-7-10 09:13
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
这就是从键盘上获取字符串的方法!
作者: 奋斗2014    时间: 2014-7-10 09:21
如果不是必须要用io流的话,不建议用吧!用Scanner就好了,比较简单。
作者: ZHOU_XIAO_BING    时间: 2014-7-26 23:30
自己之前还未看到Scanner类  解释十分详细啊
作者: ZHOU_XIAO_BING    时间: 2014-7-27 23:13
yangcy 发表于 2014-7-9 18:04
LZ,运行后,在控制台输入一行字符串,然后回车,出现结果。
另外,像这种从键盘读取字符串类型的问题,一 ...

现在 已经完全了解了  
作者: ZHOU_XIAO_BING    时间: 2014-7-27 23:18
非5莫属 发表于 2014-7-9 17:48
import java.util.Scanner;
public class Test7 {
        public static void main(String[] args){

有用额                 
作者: ZHOU_XIAO_BING    时间: 2014-8-3 21:47
不知道  同学是什么情况了   进这个门槛了吗?
作者: ZHOU_XIAO_BING    时间: 2014-8-3 21:50
不知道  同学是什么情况了   进这个门槛了吗?
作者: guanxiangliang    时间: 2014-8-3 21:54
这么简单的键盘输入还用io有点坑,Scanner足以,至于运行后没结果:L,哥,你也说是键盘输入,你就输入啊!
作者: GoodBoy123    时间: 2014-8-3 22:17
  1. package cn.javabean;

  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;

  4. public class Test
  5. {
  6.         public static void main(String[] args) throws Exception
  7.         {
  8.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  9.                 String str = br.readLine();
  10.                 StringBuilder sb = new StringBuilder();
  11.                
  12.                 for(int i = 0; i < str.length(); i++)
  13.                 {
  14.                         if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z')        //如果是小写
  15.                                 sb.append((char)(str.charAt(i)-32));               
  16.                         else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')//如果是大写
  17.                                 sb.append((char)(str.charAt(i)+32));
  18.                         else
  19.                                 sb.append(str.charAt(i));                //如果是其它
  20.                 }
  21.                 System.out.println(sb.toString());
  22.         }
  23. }
复制代码

作者: ZHOU_XIAO_BING    时间: 2014-8-4 23:03
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
作者: ZHOU_XIAO_BING    时间: 2014-8-4 23:21
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
作者: ZHOU_XIAO_BING    时间: 2014-8-4 23:31
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
作者: ZHOU_XIAO_BING    时间: 2014-8-7 01:52
欢迎跟我一样零基础的同志,多多建议!  撒花!!
作者: 张涛的狂怒    时间: 2014-8-7 07:59
支持支持
作者: 明2012    时间: 2014-8-7 08:22
yangcy 发表于 2014-7-9 18:04
LZ,运行后,在控制台输入一行字符串,然后回车,出现结果。
另外,像这种从键盘读取字符串类型的问题,一 ...

支持一下
作者: 申航航    时间: 2014-8-7 08:39
键盘获取用的是字节流
作者: F@C    时间: 2014-8-7 14:47
进来学习
作者: 吥洅ㄨ错过ㄩ    时间: 2014-8-7 19:10
Scanner scanner  = new Scanner(System.in);
作者: 吥洅ㄨ错过ㄩ    时间: 2014-8-7 19:11
Scanner in=new Scanner(System.in);                 System.out.println("请输入字符串:");                 String str=in.next();
作者: sunny~    时间: 2014-8-7 20:16
顶一下下
作者: chulangren2    时间: 2014-8-8 00:00
Scanner sc = new Scanner (System.in)  String s = sc.nextLine()




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2