Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入”(max)”。
Sample Input
abcdefgfedcba
xxxxx
Sample Output
abcdefg(max)fedcba
x(max)x(max)x(max)x(max)x(max)
在此介绍2个Java的String的函数:
replace和replaceAll
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字
符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过
replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的
这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规
字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
用replace()或者replaceAll()在本题中都一样的:
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String Strs = sc.nextLine();
char Maxchar = Strs.charAt(0);
for(int i=1;i<Strs.length();i++){
if(Maxchar<Strs.charAt(i)){
Maxchar=Strs.charAt(i);
}
}
System.out.println(Strs.replaceAll(""+Maxchar, Maxchar+"(max)"));
/**System.out.println(Strs.replace(""+Maxchar, Maxchar+"(max)"));**/
}
}
}
}