@Zapil

Индексация массива Java. Как обойтись без циклов?

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] array = str.toCharArray();

        //выводы (костыли на циклах)
        char third_symbol = array[2];
        char pre_last_symbol = array[array.length - 2];

        System.out.print(third_symbol + "\n" + pre_last_symbol + "\n");
        // вывод первых пяти символов
        for (int i = 0; i < 5; i++) {
            System.out.print(array[i]);;
        }
        System.out.println(); // перенос строки просто

        //вывод строки без последних двух символов
        for (int i = 0; i < array.length-2; i++) {
            System.out.print(array[i]);
        }
        System.out.println(); // перенос строки просто

        //вывод строки без первых трёх символов
        for (int i = 3; i < array.length; i++) {
            System.out.print(array[i]);
        }
        System.out.println(); // перенос строки просто

        //вывод длины строки
        System.out.print(array.length);
    }
}
  • Вопрос задан
  • 138 просмотров
Решения вопроса 2
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Будь я на вашем месте сделал бы следующим образом:
Создал бы метод, который принимает несколько аргументов:
1) сам массив, по которому нужно итерировать
2) startOffset - это если нужно вывести char без первых n символов
3) endOffset - это если нужно вывести char без последних n символов

Либо же можно реализовать подобное при помощи Stream API. Но скорее всего вы все еще изучаете Java и скорее всего еще не дошли до этого...
Ответ написан
profesor08
@profesor08
Строка это объект, у объекта есть методы: https://www.w3schools.com/java/java_ref_string.asp

import java.util.Scanner;

public class HelloWorld {

     public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        
        System.out.println(str);
        System.out.println(str.charAt(2));
        System.out.println(str.charAt(str.length() - 2));
        System.out.println(str.substring(0, 5));
        System.out.println(str.substring(0, str.length() - 2));
        System.out.println(str.substring(3, str.length()));
        System.out.println(str.length());
     }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы