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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下是我百度的程序,能够基本看懂,但是不知道如何运行,完全不懂是怎样接收字符串,并且编译后运行没有结果,我用的是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();

27 个回复

倒序浏览
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];
                }
        }
}
你可以试试我的方法
回复 使用道具 举报
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. }
复制代码

点评

32个赞给起  发表于 2014-7-26 23:27

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报 1 0
赵顺超 来自手机 中级黑马 2014-7-9 18:35:52
板凳
键盘用的字节流,然后看你的目的是哪。
回复 使用道具 举报
你肯定知道
  1. System.out
复制代码

这是输出,

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

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

这种方式获得键盘输入, 除了int 还有其他很多接收类型,可以查询API学习

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
yangcy 发表于 2014-7-9 18:04
LZ,运行后,在控制台输入一行字符串,然后回车,出现结果。
另外,像这种从键盘读取字符串类型的问题,一 ...

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

现在 已经完全了解了  
回复 使用道具 举报
非5莫属 发表于 2014-7-9 17:48
import java.util.Scanner;
public class Test7 {
        public static void main(String[] args){

有用额                 
回复 使用道具 举报
不知道  同学是什么情况了   进这个门槛了吗?
回复 使用道具 举报
不知道  同学是什么情况了   进这个门槛了吗?
回复 使用道具 举报
这么简单的键盘输入还用io有点坑,Scanner足以,至于运行后没结果:L,哥,你也说是键盘输入,你就输入啊!
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
回复 使用道具 举报
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
回复 使用道具 举报
像这种从键盘读取字符串类型的问题,一般使用Scanner类。不需要用那么繁琐的IO流操作方式了
回复 使用道具 举报
欢迎跟我一样零基础的同志,多多建议!  撒花!!
回复 使用道具 举报
支持支持
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马