导语
每篇将有两道经典Java机试题,每道题后面均为大家附上代码,每一道题目力求:
- 能够在JDK11环境下编译
- 在Eclipse JavaIDE中运行通过
- 思路易想易懂易学
- 重点代码有注释
第007题 转义字符(难度:★☆☆☆☆)
题目描述:
在 Web 开发过程中,为了防止歧义,< & > " 等特殊字符通常会进行转义。
转义的规则如下:
< : &lt;
> : &gt;
& : &amp;
" : &quot;
: &nbsp; (空格)
输入示例:
<div>What the "&" mean?</div>
输出示例:
<div>What the "&" mean?</div>
思路
最简单的方法:使用String的replace()方法。
PS:思考一下,如果不用replace()方法,自己去实现功能,代码该如何写呢?(过几天有空了,我把不用replace()的代码贴出来。)
代码
//此代码使用String.replace()方法
import java.util.Scanner;
public class Test {
public static void main(String[] args){
String a = "<";
String b = ">";
String c = "&";
String d = """;
String e = " ";
Scanner sc = new Scanner(System.in);
String string = sc.nextLine();
if(string.contains(a)) {
string = string.replace(a, "<");
}
if(string.contains(b)) {
string = string.replace(b, ">");
}
if(string.contains(c)) {
string = string.replace(c, "&");
}
if(string.contains(d)) {
string = string.replace(d, "\"");
}
if(string.contains(e)) {
string = string.replace(e, " ");
}
System.out.println(string);
}
sc.close();
}
}
//此代码不使用String.replace()方法 待发布...
运行结果
第008题 练习打字(难度:★☆☆☆☆)
题目描述:
小南瓜的同学小欢欢刚刚学习打字,现在小欢欢输入一个英文字符串s,这个英文字符串只由大写和小写的英文字母构成。小欢欢同学只会使用Caps Lock键来切换大小写输入。
最开始,大写锁定处于关闭状态,小欢欢的电脑只能输入小写英文字母。当大写锁定关闭时,按一下Caps Lock键可以打开大写锁定,之后只能输入大写字母;当大写锁定打开时,按一下Caps Lock键可以关闭大写锁定,之后只能输入小写字母。
现在小南瓜想通过小欢欢输入的这个字符串,判断小欢欢至少需要按键按了多少次。
输入示例:
aBCdeFG
输出示例:
10
思路
每有一次大小写转换,就增加一次按键次数。
代码
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int count = s.length(); //每按一次字母都是一次按键
for (int i = 0; i < s.length() - 1; i++) {
//相邻两个字母存在大小写转换,则按键增加一次
if((s.charAt(i) >= 'a' && s.charAt(i + 1) <= 'Z') || (s.charAt(i) <= 'Z' && s.charAt(i + 1) >= 'a')) {
count++;
}
}
//初始状态是小写,故当首字母是大写时要增加一次。
System.out.println(s.charAt(0) <= 'Z' ? count + 1 : count);
sc.close();
}
}
运行结果
以上是本次两道Java机试题
如有不足,欢迎批评指正
欢迎阅读上一篇:Java 100道典型机试笔试题(03)
欢迎阅读下一篇:Java 100道典型机试笔试题(05)
作者:小南瓜
日期:2019年4月27日15:44