2014-03-27 55 views
2

现在,这个代码在一台机器上工作绝对正常,但在另一台机器中只是简单地拒绝输出正确的结果。charAt产生不同的输出

这是一个简单的Initials输出请求。我对代码没有任何疑问,但我的问题是为什么它会输出数字而不是字母?

当使用Eclipse(开普勒)从我的笔记本电脑运行代码没有问题,我收到了信件。如果我使用其中一个可用的桌面和相同版本的Eclipse,则会得到一个整数。这可能是设置,但我不知道为什么。而重写的代码对输出

import java.util.Scanner; 

public class InitialHere { 

public static void main(String[] args) 
{ 
    // TODO Auto-generated method stub 
    //Using input keyboard 

    Scanner kb = new Scanner(System.in); 

    String firstname,lastname; 

    //Requesting names 
    System.out.print("What is your first name?"); 
    firstname = kb.nextLine(); 

    System.out.print("What is your last name?"); 
    lastname = kb.nextLine(); 

    //Calculating the initials 
    char achar = firstname.charAt(0); 
    char bchar = lastname.charAt(0); 

    //Output 
    System.out.println("Your initials are " + achar + bchar); 
+0

准确的输入和输出是什么? – Keerthivasan

+0

想象一下,输入是汤姆沃尔顿,结果应该是TW。但它最终是171. – Snorrarcisco

+0

哦,真的,你有没有sysout出'firstname'和'lastname'之前呢? – Keerthivasan

回答

3

没有变化试试这个:

System.out.println("Your initials are " + achar + "" + bchar); 

我觉得这不应该发生,但它闻起来像炭除。例如:

char a='a'; 
char b='b'; 
System.out.println(a+b); ==> 195 
+0

这完美地工作非常感谢你。任何理由为什么它在某些机器上工作而不在其他人上?让我有点困惑 – Snorrarcisco

+0

不是。我认为这根本不应该发生,如果是这样的话会是一个编译器错误。 – Scheintod

+0

@Sororcisco我能想到的唯一原因是您的JVM版本可能在不同的机器上有所不同。 – Savv