После преобразования массива чисел типа int в строку методом Arrays.toString(); перестал работать метод indexOf(). То есть при выполнении такого кода на экран всегда выводится -1. Как это исправить?
int n = 10;
int[] mass = new int[n];
int a = 0, b = 10;
//fill in the mass with random numbers
for(int i=0; i < n; i ++){
mass[i] = a + (int)(Math.random()*b);
}
String str = Arrays.toString(mass);
System.out.println(str.indexOf(mass[0]));
Приведите аргумент поиска к строке:
System.out.println(str.indexOf(mass[0] + "")); // 1
Обратите внимание на особенность выбранного метода сериализации массива:
String str = Arrays.toString(mass);
System.out.println(str); // "[3, 5, 8, 3, 0, 5, 3, 4, 0, 3]"
Если это не то, что вам нужно, попробуйте другой метод:
StringBuilder sb = new StringBuilder(mass.length);
for (int i : mass) {
sb.append(i);
}
String s = sb.toString();
System.out.println(s); // "3583053403"
Читаем документацию.
Если вы в indexOf() передаёте int, функция считает его как код символа.
Вам необходимо преобразовать int в строку и передавать в метод её.
Вызывайте так:
System.out.println(str.indexOf(Integer.toString(mass[0])));
Или так:
System.out.println(str.indexOf(String.valueOf(mass[0])));
Или так:
System.out.println(str.indexOf(mass[0] + ""));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какой формат видео лучше всего выбирать для фона на сайт, чтобы соотношение вес/качество был самым оптимальным? Сейчас стоит mp4, 720p качество37...
Вопрос следующий как скачать картинки с сайта, но не маленькие, а большие, которые открываются при нажатии на картинку?
Добрый день всемВопрос: как при помощи css круг сделать под любой экран? width, height и border-radius в процентах дают круг на одних экранах и эллипс на других
Есть задачаУчебная, так что вопросы оптимальности решения отходят на второй план