var style = new Style(typeof(System.Windows.Controls.Primitives
.DataGridColumnHeader));
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty
,"Your tool tip here"));
style.Setters.Add(new Setter { Property = BackgroundProperty, Value
= Brushes.Yellow });
dgExcelSheet.Columns[1].HeaderStyle = style;
Существующие ответы любой
char
отдельный символ (кодовая точка), в то время как это - слово UTF-16, которое может быть половиной из суррогатной пары, или Позволяют нам посмотреть суррогатные символы (каждый такой символ состоят из двух слов UTF-16 — Java char
s) и может иметь верхние и строчные варианты:
IntStream.rangeClosed(0x01_0000, 0x10_FFFF)
.filter(ch -> Character.toUpperCase(ch) != Character.toLowerCase(ch))
.forEach(ch -> System.out.print(new String(new int[] { ch }, 0, 1)));
Многие из них могут быть похожими на 'тофу' (в–Ў) для Вас, но они - главным образом допустимые символы редких сценариев, и некоторые гарнитуры поддерживают их.
, Например, давайте смотреть на Строчную букву Deseret Долго я (рђђЁ), U+10428, "\uD801\uDC28"
:
System.out.println("U+" + Integer.toHexString(
"\uD801\uDC28".codePointAt(0)
)); // U+10428
System.out.println("U+" + Integer.toHexString(
Character.toTitleCase("\uD801\uDC28".codePointAt(0))
)); // U+10400 — ok! capitalized character is another code point
System.out.println("U+" + Integer.toHexString(new String(new char[] {
Character.toTitleCase("\uD801\uDC28".charAt(0)), "\uD801\uDC28".charAt(1)
}).codePointAt(0))); // U+10428 — oops! — cannot capitalize an unpaired surrogate
Так, кодовая точка может быть использована для своей выгоды даже в случаях, когда char
не может быть. Рассмотрение этого, давайте запишем корректное (и совместимый Java 1.5!) capitalizer:
@Contract("null -> null")
public static CharSequence capitalize(CharSequence input) {
int length;
if (input == null || (length = input.length()) == 0) return input;
return new StringBuilder(length)
.appendCodePoint(Character.toTitleCase(Character.codePointAt(input, 0)))
.append(input, Character.offsetByCodePoints(input, 0, 1), length);
}
И проверяют, работает ли это:
public static void main(String[] args) {
// ASCII
System.out.println(capitalize("whatever")); // w -> W
// UTF-16, no surrogate
System.out.println(capitalize("что-то")); // ч -> Ч
// UTF-16 with surrogate pairs
System.out.println(capitalize("\uD801\uDC28")); //
import java.util.*;
public class Program
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
String s1=sc.nextLine();
String[] s2=s1.split(" ");//***split text into words***
ArrayList<String> l = new ArrayList<String>();//***list***
for(String w: s2)
l.add(w.substring(0,1).toUpperCase()+w.substring(1));
//***converting 1st letter to capital and adding to list***
StringBuilder sb = new StringBuilder();//***i used StringBuilder to convert words to text***
for (String s : l)
{
sb.append(s);
sb.append(" ");
}
System.out.println(sb.toString());//***to print output***
}
}
Я использовал функцию split, чтобы разбить строку на слова, затем снова взял список, чтобы получить заглавную букву в этих словах, а затем я использовал построитель строк, чтобы напечатать вывод в строковом формате с пробелами в нем
Текущие ответы являются или неправильными или сверхусложняют эту простую задачу. После проведения некоторого исследования вот два подхода , я придумываю:
1. Строка substring()
Метод
public static String capitalize(String str) {
if(str== null || str.isEmpty()) {
return str;
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
Примеры:
System.out.println(capitalize("java")); // Java
System.out.println(capitalize("beTa")); // BeTa
System.out.println(capitalize(null)); // null
2. Apache Commons Lang
Apache палата общин библиотека Lang обеспечивает StringUtils
класс с этой целью:
System.out.println(StringUtils.capitalize("apache commons")); // Apache commons
System.out.println(StringUtils.capitalize("heLLO")); // HeLLO
System.out.println(StringUtils.uncapitalize(null)); // null
не забывают добавлять следующую зависимость к Вашему pom.xml
файл:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
Простое решение! не требует никакой внешней библиотеки, она может обработать пустой или одна буквенная строка.
private String capitalizeFirstLetter(@NonNull String str){
return str.length() == 0 ? str
: str.length() == 1 ? str.toUpperCase()
: str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase();
}