Voroba1996
@Voroba1996
JS разработчик

Задача на строки по JAVA?

62602f3e6fd6f228015451.png
62602f4890886097491199.png
Есть задача, фото сверху на английском и с переводчиком:

И есть решение(моё), все тесты решение прошло.
Дайте пожалуйста обратную связь. Как улучшить код, спасибо за feedback!
class Solution{

    public static void main(String[] args) {
        System.out.println(toCamelCase(""));
    }

    static String firstUpperCase(String word){
        String[] wordArr = word.split("");
        for (int i = 0; i < wordArr.length; i++){
            if(i == 0){
                wordArr[i] = wordArr[i].toUpperCase();
            } else {
                wordArr[i] = wordArr[i].toLowerCase();
            }
        }

        StringBuilder wordString = new StringBuilder("");
        for (int j = 0; j < wordArr.length; j++){
            wordString.append(wordArr[j]);
        }

        return wordString.toString();
    }

    static String firstUpperCase(String word, boolean isUpperCase){
        String[] wordArr = word.split("");
        if(isUpperCase){
            System.out.println(Character.isUpperCase(word.charAt(0)));
            if( Character.isUpperCase(word.charAt(0))){
                for (int i = 0; i < wordArr.length; i++){
                    if(i == 0){
                        wordArr[i] = wordArr[i].toUpperCase();
                    } else {
                        wordArr[i] = wordArr[i].toLowerCase();
                    }
                }
            } else {
                for (int i = 0; i < wordArr.length; i++){
                    wordArr[i] = wordArr[i].toLowerCase();
                }
            }
        }
        StringBuilder wordString = new StringBuilder("");
        for (int j = 0; j < wordArr.length; j++){
            wordString.append(wordArr[j]);
        }
        return wordString.toString();
    }

    static String toCamelCase(String s){
        if(s.equals("")) return "";

        String[] strings = s.split("[-_]");
        for (int i = 0; i < strings.length; i++){
            if(i == 0) {
                strings[i] = firstUpperCase(strings[i], true);
            } else {
                strings[i] = firstUpperCase(strings[i]);
            }
        }

        StringBuilder newString = new StringBuilder("");
        for (String string: strings){
            newString.append(string);
        }

        return newString.toString();
    }

}
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
import java.util.Arrays;
import java.util.stream.Collectors;

public class CamelCase {

    public static void main(String[] args) {
        System.out.println(toCamelCase("this-is-it"));
        System.out.println(toCamelCase("This_is_it"));
    }

    static String toCamelCase(String input) {
        var strings = input.split("[-_]");
        return strings[0].concat(Arrays.stream(strings)
                .sequential()
                .skip(1)
                .map(CamelCase::capitalizeFirst)
                .collect(Collectors.joining()));
    }

    private static String capitalizeFirst(String s) {
        return s.substring(0,1).toUpperCase().concat(s.substring(1));
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы