执行结果不对,请各位帮忙[可用分不多了,希望不影响各位心情]

goosman 2008-04-22 09:28:00
请问,我想要输出的是字符串,怎么他给我转换成了int型????是在哪个位置出错呢??谢谢各位,我可用分不多了,只好少放点分,希望不影响各位心情.
问题语句:
numString(s.charAt(0)).charAt(j)+numString(s.charAt(1)).charAt(k)+numString(s.charAt(2)).charAt(l)+numString(s.charAt(3)).charAt(m)+numString(s.charAt(4)).charAt(n)+numString(s.charAt(5)).charAt(o)+numString(s.charAt(6)).charAt(p)

完整代码:

import java.io.*;
public class RandomNumString
{
//输入1-9中的任意7个数字,如(1234567),其中1可表示为a或b或c,2可表示为d或e或f,3可表示为g或h或i,4可表示为j或K,
//5可表示为l或m或n,6可表示为o或p或q,7可表示为r或s或t,8可表示为u或v,9可表示为w或x或y或z
//如何输出那个7位的数所表示的所有字母组合。如adgjloruw是一种可能。
public static void main(String[] args)
{
try
{
System.out.println("请输入一个七位数,其中不包括0");
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String s=br.readLine();
for(int j=0;j<numString(s.charAt(0)).length();j++)
for(int k=0;k<numString(s.charAt(1)).length();k++)
for(int l=0;l<numString(s.charAt(2)).length();l++)
for(int m=0;m<numString(s.charAt(3)).length();m++)
for(int n=0;n<numString(s.charAt(4)).length();n++)
for(int o=0;o<numString(s.charAt(5)).length();o++)
for(int p=0;p<numString(s.charAt(6)).length();p++)
{
System.out.print(numString(s.charAt(0)).charAt(j)+numString(s.charAt(1)).charAt(k)+numString(s.charAt(2)).charAt(l)+numString(s.charAt(3)).charAt(m)+numString(s.charAt(4)).charAt(n)+numString(s.charAt(5)).charAt(o)+numString(s.charAt(6)).charAt(p));
System.out.println();
}
}
catch(IOException e){}
}
static String numString(char x)
{
String str="a";
if(x=='1')str="abc";
if(x=='2')str="def";
if(x=='3')str="ghi";
if(x=='4')str="jk";
if(x=='5')str="lmn";
if(x=='6')str="opq";
if(x=='7')str="rst";
if(x=='8')str="uv";
if(x=='9')str="wxyz";
return str;
}
}

执行结果如下:
请输入一个七位数,其中不包括0
1234567
739
740
741
740
741
742
741
742
743
740
741
742
741
742
743
742
743
744
741
742
743
742
743
744
743
744......
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
anqini 2008-04-22
  • 打赏
  • 举报
回复
charAt方法返回的是一个char型,你要得到它的字符串的话楼上几位的方法也可以,
String.valueOf(char c),也可以,你最好去的时候用substring取出来,免得转换!
michelecindy 2008-04-22
  • 打赏
  • 举报
回复

String sb1 = numString(s.charAt(0)).charAt(j)+"";
String sb2 = numString(s.charAt(1)).charAt(k)+"";
String sb3 = numString(s.charAt(2)).charAt(l)+"";
String sb4 = numString(s.charAt(3)).charAt(m)+"";
String sb5 = ""+numString(s.charAt(4)).charAt(n)+"";
String sb6 = numString(s.charAt(5)).charAt(o)+"";
String sb7 = numString(s.charAt(6)).charAt(p)+"";
System.out.print(sb1+sb2+sb3+sb4+sb5+sb6+sb7);
Johnson_Hong 2008-04-22
  • 打赏
  • 举报
回复
System.out.print(""+numString(s.charAt(0)).charAt(j)+numString(s.charAt(1)).charAt(k)+numString(s.charAt(2)).charAt(l)+numString(s.charAt(3)).charAt(m)+numString(s.charAt(4)).charAt(n)+numString(s.charAt(5)).charAt(o)+numString(s.charAt(6)).charAt(p));
kingssq 2008-04-22
  • 打赏
  • 举报
回复
charAt()返回一个字符,字符用“+”运算都会先转成int的。
你用个StringBuffer把它们连起来就行了。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧