문자열의 첫 번째 문자가 숫자인지 확인하려면 어떻게 해야 하나요?
자바에서는 문자열의 첫 번째 문자가 숫자인지 알 수 있는 방법이 있나요?
한 가지 방법은
string.startsWith("1")
9시까지 위의 작업을 수행하지만 매우 비효율적인 것 같습니다.
Character.isDigit(string.charAt(0))
0-9뿐만 아니라 Unicode 숫자도 사용할 수 있습니다.다음과 같은 경우가 있습니다.
char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');
또는 속도가 느린 regex 솔루션:
s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")
단, 이러한 방법 중 하나를 사용할 경우 먼저 문자열이 비어 있지 않은지 확인해야 합니다.그렇다면,charAt(0)
그리고.substring(0, 1)
을 던지다StringIndexOutOfBoundsException
.startsWith
에는 이 문제가 없습니다.
전체 조건을 한 줄로 만들고 길이 검사를 피하기 위해 정규식을 다음과 같이 변경할 수 있습니다.
s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")
이 상태가 프로그램에서 엄격한 루프에 나타나지 않으면 정규 표현을 사용하는 경우 작은 성능 적중이 눈에 띄지 않을 수 있습니다.
정규 표현은 매우 강하지만 비용이 많이 드는 도구입니다.첫 번째 문자가 숫자인지 확인하는 데 사용할 수 있지만 그다지 우아하지 않습니다:) 저는 다음과 같은 방법을 선호합니다.
public boolean isLeadingDigit(final String value){
final char c = value.charAt(0);
return (c >= '0' && c <= '9');
}
입력 KOTL입력:
예를 들어,String
다음과 같습니다.
private val phoneNumber="9121111111"
처음에는 첫 번째 것을 얻어야 합니다.
val firstChar=phoneNumber.slice(0..0)
두 번째로는 첫 번째를 확인할 수 있습니다.char
그거return
a Boolean
:
firstChar.isInt() // or isFloat()
regular expression starts with number->'^[0-9]'
Pattern pattern = Pattern.compile('^[0-9]');
Matcher matcher = pattern.matcher(String);
if(matcher.find()){
System.out.println("true");
}
저는 방금 이 질문을 떠올리고 regex를 사용하지 않는 솔루션에 기여할 생각을 했습니다.
내 경우 도우미 방법을 사용합니다.
public boolean notNumber(String input){
boolean notNumber = false;
try {
// must not start with a number
@SuppressWarnings("unused")
double checker = Double.valueOf(input.substring(0,1));
}
catch (Exception e) {
notNumber = true;
}
return notNumber;
}
과잉 살상일 수도 있지만 틈만 나면 정규식을 피하려고 해요
첫 글자만 숫자 또는 문자인지 확인하려면 -- 숫자 Character.isDigit(str.charAt(0) --return true
Character.isLetter(str.charAt(0) --return true의 경우
언급URL : https://stackoverflow.com/questions/1223052/how-do-i-find-out-if-first-character-of-a-string-is-a-number
'IT' 카테고리의 다른 글
이미 구축된 Vue JS 앱에 매개 변수를 전달하려면 어떻게 해야 합니까? (0) | 2022.11.08 |
---|---|
절차에서 테이블 이름을 쉽게 바꿀 수 있는 방법이 있습니까? (0) | 2022.11.08 |
JPA 빠른 가져오기가 가입되지 않음 (0) | 2022.11.08 |
Java의 split() 메서드는 닷()에서는 동작하지 않습니다. (0) | 2022.11.08 |
코드 실행 속도: ASP.NET-MVC 대 PHP (0) | 2022.11.08 |