2016-04-08 3 views
0

Я пытаюсь написать программу сортировки, которая запрашивает ввод имен и сортирует их по алфавиту, используя первую букву каждого имени. Я просто потерян.
Я думаю о том, чтобы разделить код на два метода: один для корпуса, а другой для сортировки.Java Вставка имен ~ CompareTo

Вот что я до сих пор для бита капитализации:

titleCase(String x) 

name = x 

x.toLowerCase 

x.substring(0;)toUppercase 

Любая помощь будет принята с благодарностью.

Конечный результат должен быть что-то вроде этого:

Введите следующее имя:

Зеба

Введите следующее имя:

Риту

Введите следующее имя:

SUE

Введите следующее имя:

адель

Введите следующее имя:

-Барбаре

Введите следующее имя:

StoP

[Адель, Барбара , Rita, Sue, Zeb]

+0

Так в чем ваш вопрос? Мы не собираемся писать для вас какой-то код. Маленький код, который вы предоставили, даже не действительный код – redFIVE

+0

SO на самом деле не место для сброса вашего домашнего задания. С чем конкретно вы сталкиваетесь? Похоже, что у вас есть капитализация (несколько) в руке. Как вы их соберете? Список? –

+1

Возможный дубликат [Простой способ сортировки строк в алфавитном порядке (с учетом регистра)] (http://stackoverflow.com/questions/11176227/simple-way-to-sort-strings-in-the-case-sensitive- в алфавитном порядке) – rafaelbattesti

ответ

0

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

public String titleCase(String toEdit) { 
String output = ""; 
String toAppend = ""; 
for (int i = 0; i < toEdit.length; i++) { 
    if (i == 0) { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } else { 
    toAppend = (toEdit.charAt(i) + "").toUpperCase(); 
    } 
    output = output + toAppend; 
} 
return output; 
} 
+0

Спасибо, что помогли @ nhouser9 – Ferrariman11

+0

@ Ferrariman11 рад помочь. если бы он ответил на ваш вопрос, было бы здорово, если бы вы отметили его как ответ или повысили его, чтобы противостоять репутации, которую я потерял, получив downvoted от redFive – nhouser9

0

Разделяя функциональность является хорошей идеей. Однако фрагмент кода, который вы написали, потерпит неудачу, а также из-за синтаксических ошибок. Похоже, вы на правильном пути для части корпуса.

Проверьте класс String в Java API и посмотрите на функцию compareTo для сравнения строк друг с другом для сортировки.

0

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

public String nameCase(String name) { 
    if(name == null || name.length() == 0) { 
    return name; 
    } 
    if(name.length() > 1) { 
    return String(Character.toUpperCase(name.charAt(0))).concat(name.substring(1).toLowerCase()); 
    } else { 
    return String(Character.toUpperCase(name.charAt(0))); 
    } 
}