как получить доступ к String ... (varargs), чтобы получить определенные символы и сохранить их в String - PullRequest
0 голосов
/ 13 сентября 2018

как указано в названии, у меня есть этот код

  String a = flett("AM ","L","GEDS","ORATKRR","","R TRTE","IO","TGAUU");

public static String flett(String... s){
    StringBuilder merge = new StringBuilder();
    for (int i = 0; i < s.length; i++) {
        merge.append(s.charAt(i));
    }
    return merge;
}

Я получил ошибку в chartAt (i)?как, например, я могу вызвать каждый символ в массиве s и сохранить их в объединение или вызвать определенный символ, как первый символ из каждого и сохранить их в объединение?

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Вы должны использовать переменное количество String параметров, затем объединить все первые символы непустых String s параметров и вернуть объединенный объект:

public static void main(String[] args) {
    String s = flett("AM ","L","GEDS","ORATKRR","","R TRTE","IO","TGAUU", "HOLA", "MMMMH");
    System.out.println(s);
}

// Please note the parameter, it takes a various amount of Strings  
public static String flett(String ... values) {
    // create something that concatenates Strings (other options possible)
    StringBuilder sb = new StringBuilder();

    // the parameters are now an array of Strings, which you can "foreach"
    for (String s : values) {
        // check for empty ones and skip those
        if (!s.equals("")) {
            // append the first character of a valid parameter
            sb.append(s.charAt(0));
        }
    }

    return sb.toString();
}

Удивитесьвыход ...

0 голосов
/ 13 сентября 2018

Этот метод получает несколько строк и создает строку из первого символа каждой строки.

  public static String flett(String... s) {
        StringBuilder res = new StringBuilder(s.length);
        for (String a : s) {
            if (!a.isEmpty()) {
                res.append(a.charAt(0));
            }
        }
        return res.toString();
    }
0 голосов
/ 13 сентября 2018
s[i].charAt(j);

, где i - индекс массива, j - индекс буквы в String.

Метод Java 8, который собирает первую букву каждого массиваэлемент может выглядеть как

public String flett(String... s) {
    return Arrays.stream(s)
                 .map(i -> i.length() > 0 ? String.valueOf(i.charAt(0)) : "")
                 .collect(Collectors.joining());
}

Для массива "AM ","L","GEDS","ORATKRR","","R TRTE","IO","TGAUU" это приводит к "ALGORIT".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...