关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
2010-10-31 13:55
916 查看
答案程序如下:
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
方法的常规协定。另一个便捷之处在于,它将通过重复地调用底层流的read
read方法,尝试读取尽可能多的字符。这种迭代的
read会一直继续下去,直到满足以下条件之一:
已经读取了指定的字符数,
底层流的
read方法返回
-1,指示文件末尾(end-of-file),或者
底层流的
ready方法返回
false,指示将阻塞后续的输入请求。
如果第一次对底层流调用
read返回
-1(指示文件末尾),则此方法返回
-1。否则此方法返回实际读取的字符数。
鼓励(但不是必须)此类的各个子类以相同的方式尝试读取尽可能多的字符。
一般来说,此方法从此流的字符缓冲区中获得字符,根据需要从底层流中填充缓冲区。但是,如果缓冲区为空、标记无效,并且所请求的长度至少与缓冲区相同,则此方法将直接从底层流中将字符读取到给定的数组中。因此多余的
BufferedReader将不必复制数据。
指定者: 类
Reader中的
read参数:
cbuf- 目标缓冲区
off- 开始存储字符处的偏移量
len- 要读取的最大字符数 返回: 读取的字符数,如果已到达流末尾,则返回 -1 抛出:
IOException- 如果发生 I/O 错误
相关文章推荐
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”
- 用switch 语句实现简单的计算器功能(要求从键盘输入操作数和运算符)。 例如:输入: 3 * 4 输出:12
- 输入一串字符,要求数字从小到大,字母从a到z排序,输出字母和数字的排序结果。
- 并输出s值的C程序 高手帮忙写下 将ASCII值为偶数的字符存入数组s中 由键盘输入一串字符到t数组中
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
- 互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java
- Java 组合的实现- 输入一个字符,输出字符中字母组成的所有组合
- 输出学生成绩。本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
- 从键盘输入一个字符,按要求输出
- 选择排序(Java实现)--从键盘输入动态数组,并且排序后输出
- 使用Gson或者GsonBuilder实现JSON和Java对象之间的转换
- 输入一个字符串,把其中的字符按逆序输出。如输入light,输出thgil。要求用string方法
- 80x86汇编编程:把一串字符从键盘输入,然后逆序输出
- java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象
- 编写一个函数 输入一串字符 函数实现反转输出(图)