제목 케이스의 형식 이름 Java 도움말을 알려주세요.
-
11-12-2019 - |
문제
그래서 나는 다음에 자바 코드를 작성해야합니다 :
- 이름을 입력하세요
- 제목 케이스의 형식 이름
- 두 번째 이름 입력
- 제목 케이스의 형식 이름
- 알파벳순으로 표시
Java Character 클래스에는 문자열을 문자별로 검토하는 데 사용할 수 있는 isLowerCase(), isUpperCase, toLowerCase() 및 toUpperCase() 메서드가 있다는 것을 알고 있습니다.첫 번째 문자가 소문자인 경우 대문자로 변환하고, 이어지는 각 문자에 대해 해당 문자가 대문자인 경우 소문자로 변환합니다.
문제는 각 문자를 어떻게 확인하느냐는 것입니다.어떤 종류의 변수와 문자열을 포함해야 합니까?도와주실 수 있나요?
해결책
문자열 조작을 처리 할 때 StringBuilder
를 사용해야합니다.이 방법으로 를 덜칩니다.
StringBuilder s1 = new StringBuilder("rohit");
StringBuilder s2 = new StringBuilder("jain");
s1.replace(0, s1.length(), s1.toString().toLowerCase());
s2.replace(0, s2.length(), s2.toString().toLowerCase());
s1.setCharAt(0, Character.toTitleCase(s1.charAt(0)));
s2.setCharAt(0, Character.toTitleCase(s2.charAt(0)));
if (s1.toString().compareTo(s2.toString()) >= 0) {
System.out.println(s2 + " " + s1);
} else {
System.out.println(s1 + " " + s2);
}
. 다른 팁
첫 번째 문자를 대문자로 변환 한 다음 문자열의 나머지 부분을 소문자로 변환 할 수 있습니다.
String name = "jOhN";
name = name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase();
System.out.println(name); // John
. 문자열 클래스 만 사용하는 문자열을 탐색하려면 문자열의 각 문자를 반복합니다.
String s = "tester";
int size = s.length(); // length() is the number of characters in the string
for( int i = 0; i < size; i++) {
// s.charAt(i) gets the character at the ith code point.
}
.
이 질문 답변 문자열을 "변경"하는 방법 - 당신은 할 수 없습니다. StringBuilder 클래스는 특정 인덱스에서 문자를 편집하는 편리한 메서드를 제공합니다.
모든 이름이 적절하게 대문자가 있는지 확인하고 싶은 것처럼 보입니다. 예 : "Martin Ye"-> "Martin Ye", 문자열 입력을 통과하여 첫 번째 문자를 공간이 자본화 된 후 문자열 및 문자가 있습니다.
목록 알파벳순으로 모든 입력 된 이름을 ArrayList 또는 다른 컬렉션 객체에 저장하고 비교기를 구현하는 비교기를 만들고 collections.sort () ... 이즘 질문 비교 가능한 VS 비교기.
이 파일을 수정해야합니다
List<String> nameList = new ArrayList<String>();
nameList.add(titleCase("john smith"));
nameList.add(titleCase("tom cruise"));
nameList.add(titleCase("johnsmith"));
Collections.sort(nameList);
for (String name : nameList) {
System.out.println("name=" + name);
}
public static String titleCase(String realName) {
String space = " ";
String[] names = realName.split(space);
StringBuilder b = new StringBuilder();
for (String name : names) {
if (name == null || name.isEmpty()) {
b.append(space);
continue;
}
b.append(name.substring(0, 1).toUpperCase())
.append(name.substring(1).toLowerCase())
.append(space);
}
return b.toString();
}
. String
방법이 있어요 toCharArray
새로 할당된 값을 반환합니다. char[]
그 캐릭터의.그동안 기억해 String
는 불변, 배열 요소를 다시 할당할 수 있습니다.
비슷하게, String
생성자가 있습니다 그건 시간이 좀 걸려 char[]
새롭게 탄생한 캐릭터를 대표하는 String
.
따라서 이들을 결합하면 String
에 char[]
, 수정 char[]
, 그리고 새로운 String
.
이는 임의의 수의 방식으로 달성 될 수 있으며, 대부분의 요구 사항의 세부 사항으로 내려갈 수 있습니다.
그러나 기본 전제는 동일합니다.String
는 불변합니다 (내용은 변경할 수 없으므로 String
의 문자를 추출하고 첫 번째 문자를 대문자로 변환하고 String
배열에서 새 char
를 재구성합니다.
이미 지적 된 바와 같이 이것은 상대적으로 간단합니다.
당신이해야 할 다른 일은 여러 개의 이름 (첫째, 마지막)을 하나의 패스로 처리하는 것입니다.다시 말하지만 이것은 상대적으로 간단합니다.어려운 부분은 여러 조건에서 문자열을 분할해야 할 때 발생합니다. 그러면 정규 표현식에 의지해야합니다.
여기에 매우 간단한 예입니다.
String name = "this is a test";
String[] parts = name.split(" ");
StringBuilder sb = new StringBuilder(64);
for (String part : parts) {
char[] chars = part.toLowerCase().toCharArray();
chars[0] = Character.toUpperCase(chars[0]);
sb.append(new String(chars)).append(" ");
}
name = sb.toString().trim();
System.out.println(name);
.