我写这个程序的本意是先输入一个小写字母,
然后把它转换为大写,在输入一个大写字母,在转换为小写,但是我只能运行前一个功能,可是我如果同时输入一个小写和大写字母,则可以运行?
这是为什么呢?
package p1;
public class ToUpperCaseTest
{
public String toUpperCase(String str)
{
return str.toUpperCase();
}
}package p1;
public class ToLowerCaseTest
{
public String toLowerCase(String str)
{
return str.toLowerCase();
}
}/**
设计包p1并在其中的创建两个列,他们的功能
是对字母进行大小写转换,创建一个应用程序,
将从键盘输入的字母进行大小写转换
*/import java.io.*;
import p1.*;public class CaseTest
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个小写字母:");
char a1 = (char)br.read();
if (Character.isLetter(a1))
{
String a = String.valueOf(a1);
ToUpperCaseTest upperCase = new ToUpperCaseTest();
System.out.println(upperCase.toUpperCase(a));
} System.out.println("请输入一个大写字母:");
char b1 = (char)br.read();
if (Character.isLetter(b1))
{
String b = String.valueOf(b1);
ToLowerCaseTest lowerCase = new ToLowerCaseTest();
System.out.println(lowerCase.toLowerCase(b));
}
}
}
然后把它转换为大写,在输入一个大写字母,在转换为小写,但是我只能运行前一个功能,可是我如果同时输入一个小写和大写字母,则可以运行?
这是为什么呢?
package p1;
public class ToUpperCaseTest
{
public String toUpperCase(String str)
{
return str.toUpperCase();
}
}package p1;
public class ToLowerCaseTest
{
public String toLowerCase(String str)
{
return str.toLowerCase();
}
}/**
设计包p1并在其中的创建两个列,他们的功能
是对字母进行大小写转换,创建一个应用程序,
将从键盘输入的字母进行大小写转换
*/import java.io.*;
import p1.*;public class CaseTest
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个小写字母:");
char a1 = (char)br.read();
if (Character.isLetter(a1))
{
String a = String.valueOf(a1);
ToUpperCaseTest upperCase = new ToUpperCaseTest();
System.out.println(upperCase.toUpperCase(a));
} System.out.println("请输入一个大写字母:");
char b1 = (char)br.read();
if (Character.isLetter(b1))
{
String b = String.valueOf(b1);
ToLowerCaseTest lowerCase = new ToLowerCaseTest();
System.out.println(lowerCase.toLowerCase(b));
}
}
}
解决方案 »
- 【求助】关于xml文档的解析
- 想从1/2格式的输入中读入数字
- 如何将两个frame合并到一起
- xml schema如何实现一个attribute和一个element是互斥的?(当有attribute的时候就没有饿了门徒,反之亦然)
- 有人在java环境下开发,用过openxml4j的吗?能给段代码例子吗?急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 问一个JAVA的内存操作机制的问题,需要高手解答
- JNI编译出来的dll文件,为什么只能放到c:\windows\system32才能用?
- 拜个早年:祝工作顺利!麻烦大家帮我看下我写的这个java连接数据库类哪错了——?
- 怎么获取显示器的分辨率?
- 各位大神求解,今天在做JBUTTON时候遇到个问题
- 想实现一个email读取的功能,请高手给点思路!
- 使用JAVA SOCKET写的一个CHAT程序,接收不到信息...何解?
System.in,你只要求它系统输入一次。如果你只输入一个字母,那么第一次调用read()方法,就已经读完了。首先,你的明白流read的机制,它是向前的,也就是说,读后无法后退,读完,数据清空。
你输入两个字母能正常运行,是因为,第二次读取的是你第二个字母。这不是你想要的,不是么?只需要多调用几次System.in,就可以读取了。
另外你读取的方式改一下吧!
用readLine(),读一行