早教吧 育儿知识 作业答案 考试题库 百科 知识分享

会不会java编程啊拜谢啊急更正键盘输入的英语书写要求:1.从键盘输入英文句子,最多可以输入100行,当用户输入一个空行(直接回车)时,输入结束。2.程序内构造数组,保存输入的英

题目详情
会不会java编程啊 拜谢啊 急
更正键盘输入的英语书写
要求:
1. 从键盘输入英文句子,最多可以输入100行,当用户输入一个空行(直接回车)时,输入结束。
2. 程序内构造数组,保存输入的英文句子。
3. 按照一套规则纠正英文句子的拼写,然后在屏幕上输出结果。
4. 纠正英文句子的规则如下,第一条是必须完成的,斜体字列出的是可选的,完成可选部分可以获得更高分(下同):
a) 每个英文句子的句首字母大写。
b) 给每个句子的句首添加行号。
c) 将小写的“zjicm”都替换成大写的“ZJICM”。
d) 如果行末没有句号,则自动添加句号。
5. 示例如下(完成了规则a、b):
▼优质解答
答案和解析
程序如下,应该是正确的,没有考虑可扩展性优化什么的,注意包名,不知道LZ用什么工具运行,如果是黑窗口,不要忘记路径,或者直接把包名去掉
====================================================
package cn.baidu;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class JiuZheng {
public static void main(String args[]) throws Exception {
System.out.println("输入英文句子(回车换行,连续回车退出):");
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = "";
StringBuilder sb = new StringBuilder();
int count = 1;
do {
str = bf.readLine();
if (str.length() == 0) { // 如果输入的字符串为空,则说明只输入了一个回车
System.out.println("程序退出!");
} else {
sb.append(str).append("\r");
count++;
}
} while (str.length() != 0 && count <= 100);

Scanner sc = new Scanner(System.in);
System.out.println("请输入你想替换成大写的英文单词:回车结束");
String tStr = sc.next();

String arr[] = sb.toString().split("\r");
String newArr[] = new String[arr.length];
for(int i = 0; i < arr.length; i++){
arr[i] = Character.toUpperCase(arr[i].charAt(0)) + arr[i].substring(1,arr[i].length());
if(arr[i].indexOf(".")+1 != arr[i].length() && arr[i].indexOf("?")+1 != arr[i].length() && arr[i].indexOf("!")+1 != arr[i].length()){
newArr[i] = (i+1) + ". " + arr[i] + ".";
}else{
newArr[i] = (i+1) + ". " + arr[i];
}
}
sb = new StringBuilder();
for(String s : newArr){
sb.append(s).append("\r");
}

System.out.println(tiHuan(sb.toString(), tStr, new StringBuilder()));

}

private static String tiHuan(String str, String isStr, StringBuilder sb){
if(str.indexOf(isStr) >= 0){
sb.append(str.substring(0, str.indexOf(isStr)));
for(int i = 0; i < isStr.length(); i++){
sb.append(Character.toUpperCase(isStr.charAt(i)));
}
return tiHuan(str.substring(str.indexOf(isStr) + isStr.length()), isStr, sb);
}else{
return sb.toString() + str;
}

}
}
=========================测试数据=============================
输入英文句子(回车换行,连续回车退出):
i am finding my bag.
How are you?
fine, thank you, and you?
i am fine too
have a try
程序退出!
请输入你想替换成大写的英文单词:回车结束
are
1. I am finding my bag.
2. How ARE you?
3. Fine, thank you, and you?
4. I am fine too.
5. Have a try.
看了 会不会java编程啊拜谢啊急...的网友还看了以下:

单位卡账户的资金一律从其基本存款账户转账存入,可以交存现金,不得将销货收入的款项存入其账户。  2020-05-27 …

如果用户在存货核算选项中选择“账面为负结存时入库单记账自动生成出库调整”,当入库单记账时,如果账面为  2020-05-31 …

会不会java编程啊拜谢啊急更正键盘输入的英语书写要求:1.从键盘输入英文句子,最多可以输入100  2020-07-17 …

英语翻译本机装有自动还原系统,关机前请将你的个人资料存入U盘或其它存储设备中以免造成不必要的损失,  2020-08-03 …

中国银行人民币活期存款利率为0.72%,假设某人存入10万元人民币后,既不加进存款也不取钱,每年到  2020-08-04 …

有神论者说神造了宇宙,物理学家又说宇宙甚至宇宙膜都是自然存在的.我想问有神论者,上帝何处安身?上帝会  2020-11-03 …

在2012年年底,某家庭打算把10万元定期存入银行后,既不加进存款也不取钱,每年到期利息连同本金自动  2020-11-14 …

下列有关外存储器的描述不正确的是A.外存储器不能为CPU直接访问,必须通过内存才能为CPU所使用B.  2020-11-16 …

下列有关外存储器的描述不正确的是A.外存储器不能为CPU直接访问,必须通过内存才能为CPU所使用B.  2020-11-16 …

邮政零存整取不到期取出利息怎么算邮政每月存入2000元,存入1年,到期取出能多少钱?已经存了8个月,  2020-11-27 …