package bufferedReader;import java.io.IOException;
import java.io.InputStream;public class JianPanShuRuEr { /**我的思路;我要定义一个数组,让这个数组起到缓冲区的作用
* 还要对数组中的元素变成字符串的时候进行判断是否有over
* 所以我要定义一个string变量用来转换
* 所以我要一个一个的去读
* 在我判断完而且要回车时候 我会让读取的元素进入到我的数组中去
* 然后我还要进行变相的遍历
* 所谓变相的遍历,就是用一个变量记住,然后再输入到一个字符串中
* 最后还要把数组清空
* 数组的长度如何定义呢 new char[in.avaliable()];
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
fangFa();
}
public static void fangFa() throws IOException {
// TODO 自动生成的方法存根
//定义一个数组 什么类型?char
//定义数组的指针 记得要归零 还有呢 要定义一个计数器
int pos = 0;
int ch = 0;
//显示输入流
InputStream in = System.in;
char[] arr = new char[in.available()];
ch=in.read();
while ((ch = in.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
{
String temp = arr.toString();
if(temp.equals("over"))
break;
System.out.println(temp.toUpperCase());
pos = 0;
}
arr[pos++] = (char) ch;
}
}}
import java.io.InputStream;public class JianPanShuRuEr { /**我的思路;我要定义一个数组,让这个数组起到缓冲区的作用
* 还要对数组中的元素变成字符串的时候进行判断是否有over
* 所以我要定义一个string变量用来转换
* 所以我要一个一个的去读
* 在我判断完而且要回车时候 我会让读取的元素进入到我的数组中去
* 然后我还要进行变相的遍历
* 所谓变相的遍历,就是用一个变量记住,然后再输入到一个字符串中
* 最后还要把数组清空
* 数组的长度如何定义呢 new char[in.avaliable()];
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
fangFa();
}
public static void fangFa() throws IOException {
// TODO 自动生成的方法存根
//定义一个数组 什么类型?char
//定义数组的指针 记得要归零 还有呢 要定义一个计数器
int pos = 0;
int ch = 0;
//显示输入流
InputStream in = System.in;
char[] arr = new char[in.available()];
ch=in.read();
while ((ch = in.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
{
String temp = arr.toString();
if(temp.equals("over"))
break;
System.out.println(temp.toUpperCase());
pos = 0;
}
arr[pos++] = (char) ch;
}
}}
解决方案 »
- 谁需要scjp考试券请于我联系
- myeclipse6.5使用hibernate问题
- -------resin的pro版本跟非pro版本有什么区别??-------
- 非常急啊 一对多双向关联的问题 大伙帮帮忙啊!!!!!!! 88分献上
- 那位大虾那有用MVC模式开发的例子以及文档????
- java mavan 找不到类 ,找不到符号,类实例化不了
- hibernate 的mapping file中,我的id是手动赋值的,要怎么写generator?
- 高分请假:tomcat5为什么不支持jdk1.4的方法?
- 提问-----回答
- JMail发送邮件程序
- 有谁用过Java Service Wrapper 配置jar成 window 服务。
- 寻找高手:poi怎样复制一个word内容粘贴到另一个word里得标记位置。
如果楼主的疑问只是
数组的长度如何定义呢
这个问题的话,
可以尝试着自己写一个扩展的数组(当然原理其实还是List)
当然,如果用数组的话就没有你说的那个指针了。。
所以也可以用Map的形势
就是Map<Integer,String>
这里的Integer担当你的指针。
是不是因为arr[pos++] = (char) ch;这样做的话会让数组的长度溢出?因为在本例中数组的长度是由键盘输入的元素长度确定的,由于是字节流,所以取出的第一次应该是字节数据,当我们要把它强转成字符而且还要把它归入到数组中来,可能在这中间出了问题,可是我不知道
另外 在简单的程序中,把int型强转为char型在转入数组中是可以的
当然了使用数组充当缓冲区还有另外一种,上面的做法只是想要模仿缓冲区的功能而已,但是缓冲区有自己特定的功能,而将数组直接换掉缓冲区,数组却不具备这样的功能
到底是什么样的功能呢?大家分析一下啊!!!
import java.io.InputStream;public class JianPanShuRuEr { /**我判断的是输入over就断开,整个都是over
* 不是输入里包含有over就断开
* 我的思路;我要定义一个数组,让这个数组起到缓冲区的作用
* 还要对数组中的元素变成字符串的时候进行判断是否有over
* 所以我要定义一个string变量用来转换
* 所以我要一个一个的去读 在我判断完而且要回车时候
* 我会让读取的元素进入到我的数组中去
* 然后我还要进行变相的遍历 所谓变相的遍历,
* 就是用一个变量记住,然后再输入到一个字符串中
* 最后还要把数组清空 数组的长度如何定义呢 new
* char[in.avaliable()];这句不能用
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
fangFa();
} public static void fangFa() throws IOException {
// TODO 自动生成的方法存根
// 定义一个数组 什么类型?char // 定义数组的指针 记得要归零 还有呢 要定义一个计数器
int pos = 0;
int ch = 0;
// 显示输入流
InputStream in = System.in;
char[] arr = new char[1024];
while ((ch = in.read()) != -1) {
if (ch == '\r')
continue;
if (ch == '\n') {
String temp = new String(arr, 0, pos);
// String temp = arr.toString();
if ("over".equals(temp))
break;
System.out.println(temp.toUpperCase());
pos = 0;
} else
arr[pos++] = (char) ch;
}
}}
//不容易啊,终于成功了,在编写的时候注意不要张冠李戴,char数组不能tostring 数组长度要明确划分