将字符与Java

时间:2018-01-03 04:05:03

标签: java

public static int getDigit(char character, char letters[]  )
{
    int digit=0;
    for (int i=0;i<=0;i++);
    {
        for (int j=0; j<(letters[i].length());j++)
        {
            if (letters[i][j]==character)
            {
               digit=i; 
            }
        }    
    }
    return digit;
}
  

其中数组是LETTERS = {(&#34; abc&#34;),(&#34; def&#34;),(&#34; ghi&#34;),(&#34; jkl&#34 ),           (&#34; MNO)&#34),(&#34; PQRS&#34),(&#34; TUV&#34),(&#34; WXYZ&#34;)};和字符可以是任何字母。

我希望程序找到输入的字符并在字符串中显示该字符的位置。例如 - 如果用户输入字母&#34; g&#34;那么它应该显示数字3,因为它在数组的第3个元素中。

2 个答案:

答案 0 :(得分:0)

这是您想要的工作实现。我假设您的letters数组旨在成为2D锯齿状字符数组。您的原始代码实际上只有一些小问题,主要是在循环逻辑中。

public static int getDigit(char character, char letters[][]) {
    int digit = -1; // return -1 if character not found

    for (int i=0;i < letters.length; i++) {
        for (int j=0; j < letters[i].length; j++) {
            if (letters[i][j] == character) {
                digit = i;
                i = letters.length;
                break;
            }
        }    
    }

    return digit;
}

public static void main(String args[]) {
    char[][] letters = new char[][] {
        { 'a', 'b', 'c' },
        { 'd', 'e', 'f' },
        { 'g', 'h', 'i' },
        { 'j', 'k', 'l' },
        { 'm', 'n', 'o' },
        { 'p', 'q', 'r', 's' },
        { 't', 'u', 'v' },
        { 'w', 'x', 'y', 'z' }};
    System.out.println(getDigit('d', letters) );
}

Demo

答案 1 :(得分:-1)

真的不可能完全回答你的问题,因为除了“它不起作用”之外它没有说明问题是什么。

只是略读代码:您应该将行digit=i;更改为return i + 1;,因为您说如果“g”是第三个字符,它应该返回3。

此外,这个循环是无意义的for (int i=0;i<=0;i++);它只会运行一次...同样在注释中指出@ bcsb1001时,循环结尾处的分号基本上结束了它,所以循环实际上是空!它应该是for (int i=0;i<letters.length();i++) {

此代码可能存在其他问题。你的分享不够。