【问题标题】:Values from letters in JavaJava中字母的值
【发布时间】:2015-04-19 04:32:41
【问题描述】:

我的 Java 类有一个作业,我需要在一个程序中编写多个方法。在大多数情况下,我了解所有内容,除了我想获得 2 个字母之间的值的地方。这是说明“创建一个传递 2 个字母的方法,然后打印第一个字母和第二个字母之间的所有值,包括在内。当传递的第一个字母按字母顺序排在第二个字母之后时,在打印之前交换值。调用使用任何两个大写字母的方法。”这就是我目前所拥有的

public static void main(String[] args){
    char first = 'A';
    char last = 'Z'; 
    printLetters(first,last);
}//end main

public static void printLetters(char a, char z){
    char temp;
    if(a < b){
        temp = a;
        a = b;
        b = temp;
    }//end if
    while(a <= b)
        a++;
}//end printLetters

所以基本上我不知道我应该如何从字母中获取值,然后我如何对其进行编码,以便它执行我被要求做的事情,即打印两个字母之间的所有值。我是一个初学者,方法已经让我头晕目眩,但这让我完全在黑暗中跌跌撞撞。

【问题讨论】:

  • 从 char 转换为 int,如下所示:(int)'A'。像这样从 int 转换为 char:(char)30.

标签: java methods character


【解决方案1】:

你的想法基本上是对的,除了一些小错误:

  1. 您调用了第二个参数z,但一直引用b
  2. 您检查a &lt; b 是否应为a &gt; b
  3. 由于您只想打印两个字母之间的值,您的while 循环应该使用&lt;,而不是&lt;=
  4. 而你忘了实际打印这封信

所以:

public static void printLetters(char a, char b) { //1st comment
    char temp;
    if (a > b) { // 2nd comment
        temp = a;
        a = b;
        b = temp;
    }//end if
    while (a < b) { // 3rd comment
        a++;
        System.out.println(a); // 4th comment
    }
}//end printLetters

【讨论】:

    【解决方案2】:

    您的 printletters 方法接受参数az,但里面的代码使用ab。您可以通过将 printletters 更改为:

    printLetters(char a, char b) {
    

    【讨论】:

      【解决方案3】:

      是的,你做得对,你只需要这样做

      public static void printLetters(char a, char b){
          char temp;
          if(a > b){
              temp = a;
              a = b;
              b = temp;
          }//end if
           while(a <= b)
              System.out.print((char)a++);
      }//end printLetters
      

      这被称为强制转换,因为当您在内部执行“a++”时,java 会添加字符“a”的 ASCII 值,这会产生整数值,因此您需要将其强制转换回字符形式

      【讨论】:

      • 所以我这样做了,但程序仍然没有打印任何东西
      猜你喜欢
      • 2015-09-13
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多