Как создать метод, который делает первую букву строки заглавной в java?

то, что я пытаюсь сделать, это написать метод, который имеет один аргумент и возвращает новую строку, которая использует эту строку с заглавной буквы и возвращает ее параметр.

это мой код до сих пор:

 public void input(){

    this.printmessage("Dillon", "Francis", "chimes", "chimes from hudson mohawke", "2",             "$69.00", "$420.00", "$1337.00");
}


public void printmessage(String firstName, String lastname, String product, String company, String number, String retail, String price, String saving){

    UI.println("text " + firstName + ",");



    UI.println(text + " " + product + "s text, text text text text -");



    UI.println(" ");
}

Что я хочу сделать, так это использовать параметр продукта (звонки) с заглавной буквы, а затем вернуться в printMessage с заглавной буквы, если он используется в начале предложения.

Будет ли что-то подобное работать?

 public String capitalise(String product){

    return Character.toUpperCase(product.charAt(0)) + product.substring(1);

}

Я действительно застрял и хотел бы помочь.

Спасибо.

я пробовал это

 String pls = (product + " example");
    if ( pls.startsWith(product) ) {
        product = capitalise(product); 
   }
   UI.println(pls);

но он не распечатывает версию с заглавной буквы.


person 2nd    schedule 23.03.2014    source источник
comment
спасибо, но это не помогает мне, приятель.   -  person 2nd    schedule 23.03.2014
comment
Что ж, ваше решение работает (поздравляю! :-)) но вы могли бы проверить, что это не так?   -  person Hungry Blue Dev    schedule 23.03.2014
comment
Привет, спасибо за ответ. Это может звучать глупо, но как мне вызвать это в printMessage?   -  person 2nd    schedule 23.03.2014
comment
Теперь это вы могли бы добавить к самому вопросу. (Подсказка: используйте @, а затем имя пользователя, которого вы хотите сообщить)   -  person Hungry Blue Dev    schedule 23.03.2014
comment
Will something like this work? Как насчет того, чтобы попробовать...   -  person Michael Yaworski    schedule 23.03.2014
comment
@ambigram_maker спасибо, приятель, ха-ха. Итак, как мне взять новую строку с заглавной буквы и добавить ее в сообщение печати?   -  person 2nd    schedule 23.03.2014
comment
@mikeyaworski спасибо, что посмотрели, моя проблема в том, что я не знаю, как вызвать эту новую строку в моем методе printmessage.   -  person 2nd    schedule 23.03.2014
comment
@ 2nd Тогда укажите это в своем вопросе.   -  person Michael Yaworski    schedule 23.03.2014
comment
@mikeyaworski извините за это, я буду в следующий раз! :)   -  person 2nd    schedule 23.03.2014


Ответы (1)


изменить эту строку:

UI.println(text + " " + product + "s text, text text text text -");

to:

UI.println(text + " " + capitalize(product) + "s text, text text text text -");

Но ваш код нуждается в большей структуризации. Сосредоточьтесь на ровных отступах. И если вам понадобится заглавная буква product позже, вам лучше сохранить ее, прежде чем использовать, например

...
product = capitalize(product);
UI.println(text + " " + product + "s text, text text text text -");
...

РЕДАКТИРОВАТЬ:

Для этого я предполагаю, что строка содержится в String с именем line.

Сначала проверьте, начинается ли line с product. Тогда сделайте это с большой буквы.

...
String line = text + " " + product + "s text, text text text text -";
line = line.trim(); // removes whitespaces.
if ( line.startsWith( product ) ) {
    product = capitalize ( product ); //or whatever.
}
UI.println(line);
...
person Hungry Blue Dev    schedule 23.03.2014
comment
Большое спасибо, приятель. Я знаю, что это немного грязно в данный момент, я почистил его :) - person 2nd; 23.03.2014
comment
Ну, не забудьте принять ответ. :-) - person Hungry Blue Dev; 23.03.2014
comment
Я знаю, что это может быть немного лишним, но как мне сделать так, чтобы часть с заглавными буквами проверяла, что продукт является первой строкой/словом в предложении, и использует только заглавные буквы, если это так? - person 2nd; 23.03.2014
comment
@ 2nd Посмотри, скажи мне, если ты не понимаешь. - person Hungry Blue Dev; 23.03.2014
comment
Хорошо, я понимаю этот код. Однако я использую UI.println для записи текста в консоль. Я не могу заставить его проверить это. Я пробовал, если (printmessage.startsWith(Product)), но, похоже, это не работает. - person 2nd; 23.03.2014
comment
Вы должны создать линию. (Реализуйте это правильно... Есть ли шанс, что text является пустым String? Я предположил это и написал свой код соответствующим образом.) - person Hungry Blue Dev; 23.03.2014
comment
я пробовал это (редактировать вверху), но я не могу заставить его распечатать версию с заглавной буквы :(. - person 2nd; 23.03.2014