【问题标题】:How do i make this function of chars work in java我如何使这个字符功能在java中工作
【发布时间】:2015-09-28 23:25:25
【问题描述】:

给定一个从 A 到 U 的字符,打印该字符和字母表中接下来的 5 个字符(空格分隔)。打印与给定大小写相同的字符。

    static void doStuff(char c){
    for(char i='c'; i<='c'+5;i=i+1){
        System.out.print(c+"");
    }
}

【问题讨论】:

  • 您有什么问题?我看到了一个,很容易解决:如果你想要一个空格,用“”替换“”。
  • 同时删除 for 循环中 c 周围的单引号并打印 i 而不是 c
  • 我猜你想在 for 循环中删除 c 周围的引号。你也可以打印 i 而不是 c。
  • 我做了所有这些,但它不起作用。
  • @thales78 i = i+1;不适合你,因为 i+1 将产生一个整数数据类型值。所以你必须在外部进行类型转换为 i = (char)(i+1);

标签: java algorithm for-loop char


【解决方案1】:

您的代码中有错误。在 for 循环中删除 c 周围的单引号,使用预增量 i(i++) 并打印 i 而不是 c 。下面的代码可以正常工作。

static void doStuff(char c){
   for(char i=c; i<=c+5;i++){
      System.out.print(i+" ");
   }
}

【讨论】:

  • 谢谢这个结果很好! thx thx thx!我写了 i=i++ 我猜那是错误的,因为只有 i++ 起作用了。我认为 i=i+1 也应该有效?我会试试看。再次感谢!
  • 我也试过 i=i+1 为什么不行。和i++是一样的吧?
  • @thales78 i = i+1;不适合你,因为 i+1 将产生一个整数数据类型值。所以你必须在外部进行类型转换为 i = (char)(i+1);
【解决方案2】:
class Alphabets
{
    public static void main(String args[])
    {
        char ch;

        for( ch = 'a' ; ch <= 'a'+4 ; ch++ )
            System.out.println(ch);
    }
}

【讨论】:

    【解决方案3】:

    试试这个 -

    public class Alphabets{
    
        public static void main(String args[]){
    
            //char c = 'p';
            char c = 'P';
    
            for(int i = c; i<=c+5; i++){
                System.out.print((char)i +" ");
            }
        }
    }  
    

    for at you loop 的一些点 -

    for(char i='c'; i<='c'+5;i=i+1)
    

    1. 字符 i='c'。在这种情况下这是不正确的。现在它正在引用字符'c',无论给定的字符是什么函数。 我已将其更改为i=c

    2.如果你写i&lt;='c'+5,那么可能会发生错误(基于你的jvm版本) - 可能会丢失精度,同时转换int分配结果(从右侧)到i(在左侧)。

    【讨论】:

    • 在这种情况下,这两者是同一回事。在这里,您可以将i++ 作为i=i+1 的缩写形式。它对我有用,您可以在您的方法doStuff(char c) 中尝试这种技术。
    • i=i+1 给我一个错误,所以我相信它们不一样。
    • 它给出的错误剂量,请添加错误消息。
    • @Razib,@thales78 i = i+1;不起作用,因为 i+1 将产生整数数据类型值。所以我们必须在外部进行类型转换为 i = (char)(i+1);我认为这是正确的。
    • @thales78,@Jarachanthan Ratnakumar。抱歉,我忘记提及我已将 i 设为 int 而不是 char。因此,如果您将 i 设置为 int 而不是 char,它可以正常工作而不会出现任何错误
    【解决方案4】:

    你可以试试这个——

    static void doStuff(char c){
    
            for(int i = c; i<=c+5; i++){
                System.out.print((char)i +" ");
            }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-23
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2017-07-29
      • 2013-10-28
      • 2012-04-28
      相关资源
      最近更新 更多