早教吧作业答案频道 -->其他-->
会不会java编程啊拜谢啊急更正键盘输入的英语书写要求:1.从键盘输入英文句子,最多可以输入100行,当用户输入一个空行(直接回车)时,输入结束。2.程序内构造数组,保存输入的英
题目详情
会不会java编程啊 拜谢啊 急
更正键盘输入的英语书写
要求:
1. 从键盘输入英文句子,最多可以输入100行,当用户输入一个空行(直接回车)时,输入结束。
2. 程序内构造数组,保存输入的英文句子。
3. 按照一套规则纠正英文句子的拼写,然后在屏幕上输出结果。
4. 纠正英文句子的规则如下,第一条是必须完成的,斜体字列出的是可选的,完成可选部分可以获得更高分(下同):
a) 每个英文句子的句首字母大写。
b) 给每个句子的句首添加行号。
c) 将小写的“zjicm”都替换成大写的“ZJICM”。
d) 如果行末没有句号,则自动添加句号。
5. 示例如下(完成了规则a、b):
更正键盘输入的英语书写
要求:
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.
====================================================
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编程啊拜谢啊急...的网友还看了以下:
下列对19世纪70年代以前列强侵华特点的表述,最确切的是[]A.仅靠商品输出B.仅靠资本输出C.以 2020-05-13 …
英语翻译输出电压可调范围(V):电源内部设定,外部不可调外部信号高电平和悬空有输出在负载跃变频率不 2020-05-16 …
1、PLC输入输出地址号采用( )A、二进制 B、八进制 C、十进制2、辅助继电器M( )直接驱动 2020-05-16 …
运输需求可划分为货物运输需求和旅客运输需求,这是以( )为标志分类的。A. 运输需求主体 B. 运输 2020-05-19 …
有A、B、C、D四种计算装置,装置A:将输入的数乘以5;装置B:将输入的数加3;装置c:将输入的数 2020-06-16 …
小军用电脑设计了ABCD四种装置,将一个数输入一种装置后,会输入另一个数.装置A:将输入的数加上1 2020-06-16 …
输血输的是血清还是血细胞一般看到的题目中都是输血清假如是输血清的话我们知道血清中有凝集素那么假如万 2020-07-05 …
A型血能给AB输而AB型不能给A输血呀,最后不全都是这两种血液到一起吗?为什么生物书上写的是AB型 2020-07-15 …
针对下表的贸易状况,以英国为代表的西方列强()年代英输华货物总值(单位:万英镑)1837-1839 2020-07-19 …
C语言算法必须要有输入和输出吗?以下说法正确的是()A)用c语言实现的算法必须要有输入和输出操作B 2020-07-23 …