关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
2011-09-24 14:37
1111 查看
答案程序如下:
import java.io.*;
public class Apple{
public static void main(String args[]){
char ch[]=new char[40]; //定义个一个字符数组,用来存放获取的字符
System.out.println("请输入一串字符:");
try{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
buffer.read(ch,1,39); //将字符读入数组的某一部分
System.out.println("翻转后如下:");
for(int i=39;i>0;i--){
System.out.print(ch[i]);
}
System.out.println("");
}catch(IOException e){
e.printStackTrace();
}
}
}
***********************************************************
从Java角度看,本人认为解决方法仅此一种,关键在public int read(char[] cbuf,int off, int len)方法的使用!
API对此方法的介绍如下:
将字符读入数组的某一部分。
此方法实现
已经读取了指定的字符数,
底层流的
底层流的
如果第一次对底层流调用
鼓励(但不是必须)此类的各个子类以相同的方式尝试读取尽可能多的字符。
一般来说,此方法从此流的字符缓冲区中获得字符,根据需要从底层流中填充缓冲区。但是,如果缓冲区为空、标记无效,并且所请求的长度至少与缓冲区相同,则此方法将直接从底层流中将字符读取到给定的数组中。因此多余的
指定者: 类
import java.io.*;
public class Apple{
public static void main(String args[]){
char ch[]=new char[40]; //定义个一个字符数组,用来存放获取的字符
System.out.println("请输入一串字符:");
try{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
buffer.read(ch,1,39); //将字符读入数组的某一部分
System.out.println("翻转后如下:");
for(int i=39;i>0;i--){
System.out.print(ch[i]);
}
System.out.println("");
}catch(IOException e){
e.printStackTrace();
}
}
}
***********************************************************
从Java角度看,本人认为解决方法仅此一种,关键在public int read(char[] cbuf,int off, int len)方法的使用!
API对此方法的介绍如下:
read
public int read(char[] cbuf, int off, int len) throws IOException
将字符读入数组的某一部分。
此方法实现
类相应Reader
, int, int)]方法的常规协定。另一个便捷之处在于,它将通过重复地调用底层流的read
read方法,尝试读取尽可能多的字符。这种迭代的
read会一直继续下去,直到满足以下条件之一:
已经读取了指定的字符数,
底层流的
read方法返回
-1,指示文件末尾(end-of-file),或者
底层流的
ready方法返回
false,指示将阻塞后续的输入请求。
如果第一次对底层流调用
read返回
-1(指示文件末尾),则此方法返回
-1。否则此方法返回实际读取的字符数。
鼓励(但不是必须)此类的各个子类以相同的方式尝试读取尽可能多的字符。
一般来说,此方法从此流的字符缓冲区中获得字符,根据需要从底层流中填充缓冲区。但是,如果缓冲区为空、标记无效,并且所请求的长度至少与缓冲区相同,则此方法将直接从底层流中将字符读取到给定的数组中。因此多余的
BufferedReader将不必复制数据。
指定者: 类
Reader中的
, int, int)]read参数:
cbuf- 目标缓冲区
off- 开始存储字符处的偏移量
len- 要读取的最大字符数 返回: 读取的字符数,如果已到达流末尾,则返回 -1 抛出:
IOException- 如果发生 I/O 错误
相关文章推荐
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- 53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- 互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java
- 80x86汇编编程:把一串字符从键盘输入,然后逆序输出
- Java 键盘输入字符创后倒序输出
- java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象
- java 实现接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- java实现斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39
- java 输入输出流 关于InputStream 和 OutputSteam 实现文本一行一行读入和 文本一行一行输出
- java 从键盘输入一个关键字,在 D:盘查找文件,如果文件名中包含该关键字,则输出这个文件的绝对路径,如果都没有找到,则输出找不到相关信息。
- 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中 的字符串操作函数。
- java语言基础入门——使用键盘输入字符功能
- JAVA 字符数组的键盘输入赋值与初始化赋值的运算与输出
- 编写一个函数 输入一串字符 函数实现反转输出(图)
- 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a