다음 Long이 있습니다. 201700112345
이며, 이것을 2017.001.12345
으로 변환하고 싶습니다.Long/String에 도트를 추가하는 String.format
long l = 201700112345L;
String s = Long.toString(l);
String result = s.substring(0,4)+"."+s.substring(4,7)+"."+s.substring(7);
하지만 또한 String.format
편집하여이 작업을 수행 할 수 있습니다 : 단일 입력 ..with String.format
방법의 목적은-변수 인수 매개 변수에 대한
는 난 그냥 문자열을 사용할 수 알아?
어떤 것들은 나는 시도했다 :
난 단지 대신 세 가지 중 하나의 입력을 가지고 있기 때문에 나는 실현 매우 분명하다String.format("%4d.%3d.%5d", l);
// Which resulted in:
java.util.MissingFormatArgumentException: Format specifier '%3d'
..
내가 사용하여 동일한 입력에 역 추적 할 수 있습니다 알고 %1$
는, 그래서 나는 다음 시도 :
String.format("%4d.%1$3d.%1$5d", l);
// Which resulted in:
201700112345.201700112345.201700112345
가 나는 또한 올바른 길이 아닌 올바른 부품을 준이 시도
String.format("%.4s.%1$.3s.%1$.5s", Long.toString(l));
// Which resulted in:
2017.201.20170
필자는 String.format
을 자주 사용하지 않았 음을 인정해야합니다. 그래서 어떤 종류의 부분 문자열을 형식으로 가질 수 있는지 확실하지 않습니다. 가능한 경우, 나는
"String.format ("% s. % s. % s ", s.substring (0, 4), s.substring (4, 7), s.substring (7))'을 호출합니다. –
[this so question] (https://stackoverflow.com/questions/5114762/how-do-format-a-phone-number-as-a-string-in-java)과 같은 것이 어쩌면 당신을 도울 수 있습니다. 대시 대신 도트 ..) – Nino
@AndyTurner Hehe, 네, 그럴 가능성이 있습니다. ;) 내 질문을 수정했습니다. –