저는 Java에 대해 아주 익숙합니다. 그래서 어떻게 문자열의 문자를 숫자로 변환합니까? hello world
은 8 5 12 12 15 23 15 18 12 4
으로 출력됩니다.
그래서 a=1
, b=2
, z=26
등Java - 문자열의 문자를 숫자로 변환하는 방법은 무엇입니까?
답변
을 , 나는 당신에게 힌트를 줄 것이다. 라틴 알파벳 글자에 대한 모든 유니 코드 코드 포인트는 알파벳 순으로 정렬되어있다. a
의 코드가 N
인 경우 b
의 코드는 N+1
이고 c
의 코드는 N+2
등입니다. Z
의 코드는 N+26
입니다.
정수를 빼는 것과 같은 방법으로 문자 코드 포인트를 뺄 수 있습니다. 코드 포인트 알파벳순으로되기 때문에, 다음의 계산
char ch = 'h';
int pos = ch - 'a' + 1;
는 h
의 시퀀스 번호, 즉 8
를 생성한다. 루프에서이 계산을 수행하면 필요한 결과를 얻을 수 있습니다.
위의 수식은 같은 레지스터의 문자에만 적용됩니다. 입력 문자열이 대소 문자를 혼합 한 경우 계산을 수행하기 전에 각 문자를 소문자로 변환해야합니다. 그렇지 않으면 잘못되었습니다.
+1은 코드를 제공하기보다는 가르치려고하는 유일한 답입니다. 자세한 설명은 – iamnotmaynard
String s = "hello world";
String t = "";
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
if (!t.isEmpty()) {
t += " ";
}
int n = (int)ch - (int)'a' + 1;
t += String.valueOf(n);
}
System.out.println(t);
등
이 가장 가능성이 학습 과제이기 때문에
for (int i = 0; i < a.length(); ++i) {
if (a.charAt(i) >= 'a' && a.charAt(i) <= 'z') {
System.out.println((int)a.charAt(i) - (int)'a');
}
}
public static void main(String[] args) {
String s = "hello world";
s = s.replace(" ", "");
char[] c = s.toCharArray();
for (Character ss : c)
System.out.println(ss - 'a' + 1);
}
미국 키는 문자이고 값은 정수입니다. 이것은 효율적인 방법은 아닙니다.지도는 클래스의 정적 멤버 여야합니다.
import java.util.HashMap;
import java.util.Map;
public class JavaApplication1
{
public static void main(String[] args)
{
final Map<Character, Integer> map;
final String str = "hello world";
map = new HashMap<>();
// or map = new HashMap<Character, Integer> if you are using something before Java 7.
map.put('a', 1);
map.put('b', 2);
map.put('c', 3);
map.put('d', 4);
map.put('e', 5);
map.put('f', 6);
map.put('g', 7);
map.put('h', 8);
map.put('i', 9);
map.put('j', 10);
map.put('k', 11);
map.put('l', 12);
map.put('m', 13);
map.put('n', 14);
map.put('o', 15);
map.put('p', 16);
map.put('q', 17);
map.put('r', 18);
map.put('s', 19);
map.put('t', 20);
map.put('u', 21);
map.put('v', 22);
map.put('w', 23);
map.put('x', 24);
map.put('y', 25);
map.put('z', 26);
for(final char c : str.toCharArray())
{
final Integer val;
val = map.get(c);
if(val == null)
{
// some sort of error
}
else
{
System.out.print(val + " ");
}
}
System.out.println();
}
}
+1입니다. 인터뷰에서 BDW가이 질문을 받았다. 같은 접근법을 사용하여 대답했다. :) – amod
나는 당신이 왜 그렇게 할 것인지 이해하지 못합니다. "이것은 효율적인 방법이 아닙니다"= 더 좋은 방법이 있습니다 - 그것은 무엇입니까? – Menasheh
이해하기 쉽습니다. 매우 자주 사용되지 않으면 효율성은 중요하지 않습니다. 목표 # 1은 정확합니다. 목표 # 2는 이해하기 쉽고 유지하기 쉽고, 목표 # 3은 빨리 만듭니다. 다른 목표가 있다면 아마 # 2와 # 3 사이에 삽입 될 것입니다. 속도는 일반적으로 중요하지 않습니다. 코드가 느린 부분을 찾아 속도를 높이는 방법을 결정할 수 있습니다. – TofuBeer
posotion i의 각 문자 : 출력 s.charAt (i) - 'a'+ 1. s는 문자열입니다.
- 1. 문자열의 문자를 숫자로 바꾸기
- 2. 문자열의 16 진수 값을 숫자로 변환하는 방법은 무엇입니까?
- 3. Java - 문자열의 문자를 바꾸십시오.
- 4. 문자열의 첫 번째 문자를 숫자로 반환하십시오.
- 5. '4/2'문자를 변환하는 방법. 숫자로
- 6. 문자를 숫자로 변환하는 Teradata의 캐스트 함수
- 7. MySQL에서 문자열의 숫자로 단어를 추출하는 방법은 무엇입니까?
- 8. 첫 번째 문자를 숫자로 변경하는 방법은 무엇입니까?
- 9. clojure에서 문자를 숫자로 매핑하는 방법은 무엇입니까?
- 10. Java - 문자열의 문자를 바꿀 재귀문
- 11. 숫자 또는 기호를 숫자로 변환하는 방법은 무엇입니까?
- 12. JDOQL에서 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 13. 문자열을 중첩 배열의 숫자로 변환하는 방법은 무엇입니까?
- 14. Java에서 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 15. Decimal()을 파이썬에서 숫자로 변환하는 방법은 무엇입니까?
- 16. 바이트 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 17. number_formated 출력을 숫자로 변환하는 방법은 무엇입니까?
- 18. Tasm에서 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 19. MySQL에서 DateTime을 숫자로 변환하는 방법은 무엇입니까?
- 20. 하위 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 21. autohotkey에서 문자열을 숫자로 변환하는 방법은 무엇입니까?
- 22. WEKA에서 속성의 공칭에서 숫자로 변환하는 방법은 무엇입니까?
- 23. Tensorflow : NaN을 숫자로 변환하는 방법은 무엇입니까?
- 24. 문자열의 특정 문자를 대문자로 가져 오는 방법은 무엇입니까? - Java
- 25. 문자열의 문자를 int 배열로 변환하는 방법
- 26. 문자열의 단일 문자를 LowerCase로 변환하는 방법
- 27. 문자열에서 문자를 바꾸고 double로 변환하는 방법은 무엇입니까?
- 28. PHP에서 유니 코드 숫자 문자열을 숫자로 올바르게 변환하는 방법은 무엇입니까?
- 29. Java에서 문자열의 문자를 수정하는 방법은 무엇입니까?
- 30. jquery에서 문자열의 모든 문자를 바꾸는 방법은 무엇입니까?
OP는 각 문자를 알파벳의 위치로 매핑하려고합니다. 어떻게 내가 그것을 이해했는지. – Booyaches