저는 2의 수를 세는 방법을 알아 내려고 노력했습니다. 2의 수를 세고 int의 2를 인쇄하는 방법을 알아 내려고합니다.int에서 자릿수를 어떻게 계산합니까?
난 3552342343 과 같은 임의의 숫자를 넣으면 3을 찾고 있는데 4는 4가 3이므로 4를 인쇄하고 싶습니다.
저는 2의 수를 세는 방법을 알아 내려고 노력했습니다. 2의 수를 세고 int의 2를 인쇄하는 방법을 알아 내려고합니다.int에서 자릿수를 어떻게 계산합니까?
난 3552342343 과 같은 임의의 숫자를 넣으면 3을 찾고 있는데 4는 4가 3이므로 4를 인쇄하고 싶습니다.
당신은
String number = "128";
String digit = "2";
// expensive but simple.
int matches = number.split(digit).length - 1;
당신이 포함 같은 루프 뭔가를 사용하고 싶은 말은 모든 상대를 만나 분할을 사용할 수 있습니다.
// no objects
char digit = '2';
int count = 0;
for (int pos = number.indexOf(digit); pos >= 0; pos = number.indexOf(digit, pos + 1)
count++;
이것은 더 빠르지 만 그렇게 간단하지는 않습니다.
@Kon 당신이
char digit = '2';
for (char ch : number.toCharArray()) // creates an object
if (ch == digit)
count++;
또는
// no objects
char digit = '2';
for (int i = 0; i < number.length(); i++)
if (number.charAt(i) == digit)
count++;
문자열 문자를 반복 할 수 있듯이 몇 가지 흥미로운 런타임 최적화를 가지고 있는데 테스트해야하지만 두 번째 방법은, 가장 빠른 의심 확인하러.
당신이 무엇을 요구하고 있는지 불분명합니다. 목록에있는 코드는 컴파일되지 않으므로 런타임 오류가 무엇인지 추측 할 수 없습니다. 완전한 질문을 게시하고 발생한 오류에 대한 세부 정보를 제공하십시오. –