【问题标题】:Check if char exists in java检查java中是否存在char
【发布时间】:2012-04-03 20:28:20
【问题描述】:

如果我有一个包含“Cat”的字符串 如果每个单独的 charAt 案例中存在任何内容,我怎么能事先检查。 这是示例代码

    for (int i = 0; i < array.length; i++)
    {
        System.out.println();
        for (int j = 0; j < size; j++)
        {
            System.out.print(array[j].charAt(i) + " ");
        }
    }

一旦我达到 3,你就会得到一个越界异常。有没有办法打印一个空白空间?

编辑:抱歉,我根本不清楚。有多个垂直打印的字符串。所以假设最大的字符串大小为 10,最小的大小为 4。每个字符串的前四个字符打印良好。但是当第五个字符不存在时,会出现越界错误。有什么办法解决吗?

【问题讨论】:

    标签: java


    【解决方案1】:

    你的 ij 弄错了,仅此而已。

    你应该有:

    System.out.print(array[i].charAt(j) + " ");
    

    为了使您的代码更健壮,您应该重写内部循环,直到它达到array[i] 的长度,而不是预定义的size 变量。

    更新:如果你想垂直打印字符串数组(所以每个字符串都在一列中),你的代码应该是这样的:

    for (int i = 0; i < size; i++)             // i is the loop variable for the character count, we'll print one line for each character
    {
        for (int j = 0; j < array.length; j++) // for every string in the array
        {
            char c = ' ';                      // print out a space character by default to keep the columns aligned
            if ( array[j].length() > i )       // but if the array[j] still has characters left
                c = array[j].charAt(i);        // print that character instead
            System.out.print(c + " ");         // here
        }
        System.out.println();                  // and close the line
    }
    

    【讨论】:

    • 另外,我认为大小需要设置为数组[i].length-1。
    • @kevingreen:好吧,既然测试是j &lt; size,那么size应该就是array[i].length
    • @GregHewgill 是的,你是对的。出于某种原因,我将其视为
    • Size 保存最大字符串的值。
    【解决方案2】:

    我如何事先检查每个人是否存在任何东西 字符大小写。

    除了 biziclop 已经提到的索引问题之外,您还必须在执行 charAt 之前检查字符串的大小。
    我的意思是 for (int j = 0; j &lt; size; j++) 这里 size 应该是 array[j].length() 才能工作。

    但是为什么要麻烦循环迭代呢?
    你可以这样做System.out.print(array[i] + " ");

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 2010-11-17
      相关资源
      最近更新 更多