用Java编写下面一段程序,跪求大神帮忙,在线等

假如ABCD...Z使用1234...26数字来代表,请写一个程序,给定一个单词来得到它的数字和,并以百分数形式输出.例如:如果我输入单词attitute,则程序将打印输... 假如A B C D ...Z 使用 1 2 3 4 ... 26 数字来代表, 请写
一个程序,给定一个单词来得到它的数字和,并以百分数形式输出.
例如:如果我输入单词 attitute, 则程序将打印输出:
attitude=[1+20+20+9+20+21+4+5]= 100%
[attitude]决定一切.
如果我输入单词 lovely, 则程序将打印出:
lovely=[12+15+22+5+12+25]= 91%
也就是说,只有当单词的和正好是100 时,才会输出另 一句话:[xxxx]决定
一切。
展开
 我来答
百度网友f036095c5
2014-08-28 · TA获得超过1234个赞
知道小有建树答主
回答量:729
采纳率:83%
帮助的人:631万
展开全部

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;

}

}


}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
放荡不羁神经病
2014-08-28 · TA获得超过794个赞
知道小有建树答主
回答量:1580
采纳率:65%
帮助的人:572万
展开全部
你把这个问题拆分成若干个小问题,都可以百度一下找到答案。

1、如何获取一个输入的字符串str。
2、str转化成字符串数组str[](我记得有个String类的方法可以做到)
3、把数字和字母以键值对的形式存入一个map(这个你可百度一下map的用法,key就是字母)
4、用一个for循环,循环步骤2的那个数组,从map里取到一个数就累加。
5、循环结束后判断一下累加出来的数是否等于100,等于就往后面拼接一个%+str+"决定一切",否则就不拼接决定一切,输出。你拼接百分号的时候可能要考虑一下转义直接+“%”可能不行要加个斜杠还是反斜杠之类的。
另外需要注意的是,输入的字符串可能要用正则表达式判断一下是否是中文或数字就提示输入不正确,还得百度一下正则表达式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ztw1122
2014-08-28 · TA获得超过1088个赞
知道小有建树答主
回答量:2382
采纳率:80%
帮助的人:935万
展开全部
    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+"]=决定一切");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一小语W
2014-08-28 · 超过51用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:131万
展开全部
哈哈,同学我劝你啊,该干嘛干嘛,别学软件编程啦,作业做不做都没关系,
我只能这么告诉你,以我之见,文凭不是那么重要的,
如果说文凭对你来说很重要,那就恭喜你啦,未来的公务员
请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vajrasado
2014-08-28
知道答主
回答量:1
采纳率:0%
帮助的人:1327
展开全部
  public static void func(String word){
   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 + "]" + "决定一切!");
   }
  }
  
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式