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

会不会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编程啊拜谢啊急...的网友还看了以下: