请问,我想要输出的是字符串,怎么他给我转换成了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......

解决方案 »

  1.   

    charAt()返回一个字符,字符用“+”运算都会先转成int的。
    你用个StringBuffer把它们连起来就行了。
      

  2.   

    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));
      

  3.   


    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);
      

  4.   

    charAt方法返回的是一个char型,你要得到它的字符串的话楼上几位的方法也可以,
    String.valueOf(char c),也可以,你最好去的时候用substring取出来,免得转换!