2013-05-29 2 views
0

제가 만들고자하는 프로그램은 다음과 같습니다 : 사용자가 입력 한 문자의 형식으로 3 문자 단어를 만드는 프로그램입니다. 사용자가 두 번 이상 사용하지 않는 한 동일한 문자를 두 번 이상 사용할 수 없으며 동일한 단어를 두 번 나타날 수 없습니다.단어가 존재하는지 확인하십시오.

문제가있는 곳은 이미 단어가 있는지 확인하고 있습니다. 배열 목록 문자열, char 배열을 사용하여 시도했다. (array [i] + array [j] + array [k])는 어떤 이유로 INT로 인식되는 것처럼 보입니다.

+0

이면 상기 사용자 입력 '{'B ','C ','A ','D ','E ' 'B'}' 그는 얻을 것 '혈중 알코올 농도 세드릭 나쁜 벡 침대 택시 CAD 택시 CEB CEB 소량 DAC 소량 뎁 12월 뎁 아마이 사실을 함께 할 수있는 뭔가가있는 경우 뎁 등의 안 나쁜 벡 bed' 단어 택시 두 번 – ZeW

답변

1

char 데이터 유형은 기본적으로 작은 int입니다. 그들은 문자열이 아닙니다. 그래서 문자열 연결 대신 정수 계산 결과를 얻는 것입니다.

배열 목록에 세 문자가 포함되어 있는지 알고 싶으면 contains 메서드를 세 번 호출해야합니다.

if(chars.contains(array[i]) && chars.contains(array[j]) && chars.contains(array[k])) 
1

문자열을 만들어 배열에 추가해야합니다.

String word = array[i] + "" + array[j] + "" + array[k]; 
if (chars.contains(word)) { 
    continue; 
} 
else { 
    chars.add(word); 
} 

I는 문자 가정 ... 그것은 좀 더 명확하게하려면 List<String>

+0

가로 이동하지 않는 것 혈중 알코올 농도 내가 인쇄 할 때 배열리스트는'[b, a, c, b, a, d, b, e] '와 같다. – ZeW

+0

'// 여기에 단어가 이미 존재하는지 검사해야한다' , 위의 제 제안을 시도하십시오. – nitegazer2003

+0

나는 무엇을했고'String word; word = array [i] + ""+ 배열 [j] + ""+ 배열 [k]; if (words.contains (word)) { 계속; } else { words + = word + "\ t"; }' 기본적으로 내가 제안했지만 char 배열 목록 대신 문자열로 전환했습니다. 하나의 질문은 나를 버그지만 ... 그것은 루프 안의 String 선언을 갖는 것이 나쁘지 않습니까? 너무 많은 메모리를 사용하지 않습니까? – ZeW