inflearn logo
강의

講義

知識共有

[入門編] AndroidのためのKotlin文法

英数字のカウント

알파벳 숫자 세기, mutableMap value 값 변경

461

Seongjin Lee

投稿した質問数 5

0

제 주력 언어는 파이썬인데, 코틀린을 배우는데... 코틀린은 파이썬과 다르게 기능이 별로 없네요.

알파벳 숫자 세는 것을 아래와 같이 하려고 하는데, value+=1이 안 됩니다. 어떻게 해야 하나요?

fun solution( str : String ): Map<String, Int>{

var result = mutableMapOf<String,Int>()

 

for (i in 0..str.length-1){

var currLetter = str[i].toString()

//이 부분에서, 문자열을 인덱싱했으니 당연히 타입은 그대로일 줄 알았는데 Char()라고 합니다. ㄷㄷㄷㄷ 이건 왜 인가요?

if (currLetter in result.keys){

result[currLetter] = 2 /// 제가 하고 싶은 것: result[currLetter] += 1

//전체적인 틀의 문제인가 싶어서, 강제로 2를 할당시켜봤더니 이 부분은 정상적으로 작동합니다. 그런데 1을 더하는 것이 안 되네요, 자바와 파이썬 모두 가능한 것으로 알고 있는데 왜 안 될까요? 인터넷 검색을 해봐도, 딱히 +=1이 되는 것 같지는 않네요. 자바처럼 Counter()를 써야 하나요?

//혹시 몰라 아래와 같이 해보니까, 이것 또한 안 됩니다.

//둘 모두 아래와 동일한 에러가 나옵니다.

/*
Operator call corresponds to a dot-qualified call 'result[currLetter].plus(1)' which is not allowed on a nullable receiver 'result[currLetter]'.

*/

//어떻게 해야 하나요???

temp = result[currLetter]

result[currLetter] = temp +1

}

else{

result[currLetter] =1

}

 

}

return result

}

kotlin 코딩-테스트

回答 1

0

Seongjin Lee

혹시 이 질문 보시는 분들께 도움드리고자 제 글에 댓글 적어요.

result[currLetter] = result.getOrDefault(currLetter,0) +1

이렇게 하니까 되네요, 파이썬보다 비효율적입니다 ㅠㅠㅠㅠㅠ 앞으로 열심히 공부해볼게요

예전 로드맵과 현재 강의 순서

0

45

1

코트린 심화 학습

0

85

2

마지막에서 Int = 20의 의미

0

74

1

키보드관련 문제

0

172

1

인터페이스에 대한 질문입니다

0

284

1

질문

1

233

1

9:20초 쯤 나오는 init은 클래스안에서 공통으로 쓰이는 건가요?

0

311

1

int, string?

0

307

2

when 버전으로도 알려주세요!

0

244

1

for 문 밖에서의 list 타입의 차이점

0

293

2

Object

0

305

1

작은 값 찾기, 이렇게는 왜 안 되나요?

0

457

1

kotlin enum class

0

399

1

fun query(request: String) ="결과 query $request"질문입니다.

0

321

1

고차함수 7:43분 관련 질문입니다.

1

269

1

코틀린은 map int 밸류값에 ++ 안 되나요?

0

480

2

Unit

0

363

1

Bike() 클래스 와 Bike 클래스의 차이

0

322

1

새로운 변수를 만드는 것이 좋나요?

0

265

1

it 이 정확히 무엇인가요?

0

387

1

ArrayList와 mutableListOf의 차이점

0

1119

1

데이터 타입 Int, Long 에 대한 커버 가능 범위 참고 링크

0

334

1

ArrayList랑 mutableListOf가 차이점이 있나요?

0

399

1

수업자료는 어디서 볼 수있나요~

0

634

1