早教吧作业答案频道 -->其他-->
会不会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编程啊拜谢啊急...的网友还看了以下:
用单分子油膜测分子的直径时,对其所用实验方法的正确认识是A.用量筒测得油酸酒精溶液的体积V,计算油 2020-04-13 …
原电池中,为什么电解质溶液不能从负极直接得到电子拿铜锌原电池为例,硫酸溶液要从锌上得到电子,电子要 2020-05-14 …
1、一箱橘子需要a元,已知橘子与箱子的总质量是Mkg,箱子质量为Nkg,为了不亏本,这箱橘子的零售 2020-05-14 …
曲线所围平面图形绕直线旋转所得旋转体体积,只要式子,谢了求由曲线x^2/a^2+y^2/b^2=1 2020-06-25 …
参数方程极坐标直线截曲线,P在直线上,交点为A、B,求|PA|*|PB|已知t1t2,那就是求t1 2020-06-27 …
轮子直径与楼梯高度的关系套上履带的轮子要爬上10厘米高度的台阶,轮子的直径需要多大.或者说轮子的直 2020-07-01 …
1、水果店购进一箱橘子需要a元,已知橘子与箱子的总质量为mkg,箱子的质量为nkg,为了不亏本,这 2020-07-20 …
如图所示,被U=1000V的电压加速后的电子从电子枪中发射出来(电子被加速前的速度近似为零),沿直 2020-07-21 …
现实生活中有许多事物有传递性,也有一些事物不具有传递性.“剪刀、石头、布”这个游戏,是典型的不具有 2020-08-01 …
下面有四个命题:①“直线a,b为异面直线”的充分非必要条件是“直线a,b不相交”;②“直线l⊥面α 2020-08-02 …