HashMap이 설정되어 있으며 스캐너를 사용하여 사용자로부터 문자열 입력을받습니다. 사용자 입력 문자열을 가져 와서 HashMap에서 나타내는 값을 추가하여 전체 메시지의 너비를 계산하고 싶습니다.해시 맵의 키 값을 통해 문자열을 반복하여 합계를 얻으십시오.
예를 들어, "test"를 입력한다고 가정 해 보겠습니다. 해시 맵에서 t의 값은의 값이 3, E의 값이 3, 2, 및 t의 값은 모두 합계 값은 그래서 당신은 10
System.out.print("How much width do you want i to have? ");
int i = input.nextInt();
System.out.println("\nEnter the string input:");
Scanner scan = new Scanner(System.in);
String user_input = scan.nextLine();
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a", i*2);
map.put("b", i*2);
map.put("c", i*2);
map.put("d", i*2);
map.put("e", i*3);
map.put("f", i*2);
map.put("g", i*2);
map.put("h", i*2);
map.put("i", i*1);
...down to z
으로 끝낼 또한 2입니다
모든 키의 값은 i의 값과 관련이 있으므로 i * n으로 설정된 값이있는 것입니다.
int count = map.containsKey("a") ? map.get("a") : 0;
map.put("a", count + 1);
을하지만 단순히 키의 값이 'A'로 설정되어있는 것을 저에게 말한다 :
나는 시도했다. 해시 맵을 통해 문자열의 각 문자를 실행하고 값을 얻은 다음 각 값을 함께 추가해야합니다. 그런 다음 합계를 구하십시오. 한 번에 하나씩 문자열의 각 문자를 반복하는 데 for 루프가 필요하다는 것을 알고 있습니다. 분명히, 나는 코드에서 중요한 부분을 놓치고있다.또한 해시 맵에 a가 몇 개인 지, b가 몇 개인 지 등을 직접 설정할 수 있습니까? 글자를 추가/제거 할 수있는 유연한 arraylist를 설정했지만, 해시 맵에서 할 수 있다면 쉽게 작업 할 수 있습니다.
감사합니다.
귀하의 질문은 합계에 대한 이야기를 시작하고 계산 방법에 대해 묻지 않습니다 (명확한 방법은 아닙니다). 계산을 위해 하나를 계산하고 합계를 계산하는 데 사용하는지도가 필요할 것입니다. –
글쎄, 문자열 입력에서 문자의 수를 얻을 수 있다면 문자열의 각 문자의 키 값을 단순히 추가하여 합계를 계산할 수 있습니다. 그게 꽤 많이 어디에 내가 현재 코딩 부분을 알아 내려고 노력하고있어 – harshm0de
그것은 당신의 질문이 무엇인지 여기 분명하지 않습니다. 게시물을 수정하고 분명한 질문을하면 취소됩니다. – RBarryYoung