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;
}
}}
解决方案 »
- tomcat的下载版本的区别
- 200分急求配套光盘《轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发(含光盘1张)》
- Ibatis2如何调用weblogic的JNDI?
- 请问老师EJB3.0,编译报这个错,怎么解决啊?
- java分割字符串
- SSH+Log4j多文件记录日志的问题
- 求一条查询多对多关系的hql语句。
- [百分!!急]Javabean,用Runtime调用服务器端的一个EXE,为什么exe程序没反应
- 请问JAVA如何访问定向内存?
- 请赐教:接受UPD包,动态获得UPD包内容,不幸出了问题.....
- 有谁用过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 数组长度要明确划分