Возврат первого индекса заданного массива

Итак, у меня есть метод indexOf, и, указав строку в main, я могу заставить программу распечатать индекс этой строки в массиве. Но как мне просто иметь метод, который может распечатать первый индекс массива, и мне вообще не нужно указывать строку? Если индекс не существует, я хочу, чтобы он возвращал -1.

public static void main(String[] args)
{

    String[] v = new String[1];
    v[0] = "test";

    String s = "t";

    indexOf(v, s);
}

public static int indexOf(String[] v, String s)
{       
    int i = v[0].indexOf(s);
    System.out.println
        ("Index of the first string in the first array: " + i);

    return -1;                                      
    }
}

person user3071133    schedule 27.01.2014    source источник
comment
Непонятно, что вы пытаетесь сделать. Первый индекс массива всегда будет 0 (или не определен, если в массиве нет элементов).   -  person David    schedule 27.01.2014
comment
Прямо сейчас я собираюсь распечатать 0, потому что String s = t; это первая строка, и она имеет индекс 0. Я хочу, чтобы программа фактически распечатала t и в основном распознала первый индекс и дала мне знать, что это такое.   -  person user3071133    schedule 27.01.2014
comment
Вы никогда не перебираете входной массив. Вы также никогда не проверяете границы входного массива. Вы ничего не делаете с возвращаемым значением функции.   -  person crush    schedule 27.01.2014
comment
Все еще действительно неясно, что вы спрашиваете. Вы просто хотите напечатать первый элемент массива? Опять же, этот элемент всегда будет иметь индекс 0 или не определено для пустого массива.   -  person David    schedule 27.01.2014
comment
@David Дэвид, я предполагаю, что он хочет использовать String.indexOf() для массива строк и вернуть первое вхождение. Что неясно, так это то, как он планирует узнать, к какому элементу массива принадлежит индекс, не возвращая ни массив int, ни какой-либо пользовательский тип результата.   -  person crush    schedule 27.01.2014


Ответы (2)


Ваш вопрос можно прочитать двояко. Если вы хотите иметь возможность вернуть только первый индекс массива, выполните следующие действия:

if(v.length > 0)//check length
    return 0;//return first position
return -1;//return empty string meaning there wasnt a first position.

Однако вы можете попросить вернуть первый случай строки s в массиве v. Тогда в этом случае сделайте следующее:

//assuming v and s are not null or do not contain null values
for(int i = 0; i < v.length; i++){//loop through the array v
    if(v[i].equals(s){//does the current value of v equal to the String s?
        return i;//found string!
    }
}
return -1;//didnt find the string

Вы кажетесь новичком в java. Я настоятельно рекомендую прочитать эти два источника:

Java: массив с циклом

Как сравнивать строки в Java?

person But I'm Not A Wrapper Class    schedule 27.01.2014
comment
На самом деле я был немного сбит с толку, но этот ответ помог мне понять это. Я искал первый ответ, который вы дали. По сути, индекс всегда будет равен 0, пока существует строка, иначе я хотел бы вернуть -1. - person user3071133; 27.01.2014

Первый индекс массива всегда равен 0. Так что вы бы просто return v.length > 0 ? 0 : -1.

person Claudiu    schedule 27.01.2014