用Java编写下面一段程序,跪求大神帮忙,在线等
一个程序,给定一个单词来得到它的数字和,并以百分数形式输出.
例如:如果我输入单词 attitute, 则程序将打印输出:
attitude=[1+20+20+9+20+21+4+5]= 100%
[attitude]决定一切.
如果我输入单词 lovely, 则程序将打印出:
lovely=[12+15+22+5+12+25]= 91%
也就是说,只有当单词的和正好是100 时,才会输出另 一句话:[xxxx]决定
一切。 展开
import java.util.HashMap;
import java.util.Scanner;
public class Demo4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
int j = 1;
for (int i = 97; i <= 122; ++i) {
map.put((char)i, j);
++j;
}
String input = null;
int len = 0, sum = 0, tmp = 0;
char tmpChar;
StringBuffer sBuffer = null;
while (!(input = scanner.next()).equals("end")) {
sBuffer = new StringBuffer();
sBuffer.append(input);
sBuffer.append("=[");
len = input.length();
for (int i = 0; i < len; ++i) {
tmpChar = input.charAt(i);
tmp = map.get(tmpChar);
sBuffer.append(tmp);
if ((i + 1) < len) {
sBuffer.append("+");
}
else {
sBuffer.append("]= ");
}
sum += tmp;
}
sBuffer.append(sum);
sBuffer.append("%");
System.out.println(sBuffer.toString());
if (sum == 100) {
System.out.println("[" + input + "]决定一切.");
}
sum = 0;
}
}
}
1、如何获取一个输入的字符串str。
2、str转化成字符串数组str[](我记得有个String类的方法可以做到)
3、把数字和字母以键值对的形式存入一个map(这个你可百度一下map的用法,key就是字母)
4、用一个for循环,循环步骤2的那个数组,从map里取到一个数就累加。
5、循环结束后判断一下累加出来的数是否等于100,等于就往后面拼接一个%+str+"决定一切",否则就不拼接决定一切,输出。你拼接百分号的时候可能要考虑一下转义直接+“%”可能不行要加个斜杠还是反斜杠之类的。
另外需要注意的是,输入的字符串可能要用正则表达式判断一下是否是中文或数字就提示输入不正确,还得百度一下正则表达式。
void geuNum(String str){
int sum = 0,num=0;
char one;
String tmp="";
System.out.print(str+"=[");
for(int i=0;i<str.length();i++){
one=str.charAt(i);
num=one-96;
if(tmp.length()==0){
tmp=num+"";
}else{
tmp+=("+"+num);
}
sum+=num;
}
System.out.println(tmp+"]="+sum+"%");
if(sum==100)System.out.println("["+str+"]=决定一切");
}
我只能这么告诉你,以我之见,文凭不是那么重要的,
如果说文凭对你来说很重要,那就恭喜你啦,未来的公务员
请采纳。
String w = word.toLowerCase().trim();
int sumValue = 0;
String ret = w + "=[";
for(int i = 0; i < w.length(); i++){
char c = w.charAt(i);
if(i > 0) ret += "+";
ret += (int)c - 96;
sumValue += (int)c - 96;
}
ret += "]=" + sumValue + "%";
System.out.println(ret);
if(sumValue == 100){
System.out.println("[" + w + "]" + "决定一切!");
}
}