과제에 행맨 프로그램을 쓰고 있는데 작은 문제가있었습니다. 내 프로그램에서 단어를 분리하려면 '|'을 사용하고 있습니다. 상징. 예는이 단어를 추측 할 것입니다 :단어 사이에 구분 기호를 추가하는 방법은 무엇입니까?
U N I T E D | S T A T E S | O F | A M E R I C A
나는 아무 표시하는 StringBuffer를 변수가 있습니다. '|'의 내가 구분 기호를 삽입하려면 다음 코드를 사용하려고
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
여기 는 대시
if(guessword.indexOf('|') == -1)
System.out.print(" ");
else
guessit.setCharAt(guessword.indexOf('|'),'|');
필자는 잘못 알고 있으며 단 하나의 구분 기호 만 삽입합니다. 구분 기호를 올바른 위치에 삽입 할 때 도와 주시겠습니까? 또한 System.out.print ("");를 제거하려고 할 수 있습니다. 불필요하게 공간을 남겨 둡니다. 휴식을 사용할 수 있습니까? 대신 위의 예를 들어 내가 실제로
public static void main()throws IOException
{
Hangman obj = new Hangman();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
PrintWriter p = new PrintWriter(System.out,true);
p.println("Lets play HANGMAN");
p.println();
p.println("Enter your choice according to the following options.\n
NOTE: Words are related to the topics given below.\n
1. Sports\n2. Movies\n3. Computer\n4. Food\n5. Countries");
p.println();
int choice = Integer.parseInt(br.readLine());
obj.clearScreen();
String bothwordandclue[] = new String[2];
if(choice == 1)
bothwordandclue = obj.Sports();
else if(choice == 2)
bothwordandclue = obj.Movies();
else if(choice == 3)
bothwordandclue = obj.Computers();
else if(choice == 4)
bothwordandclue = obj.Food();
else if(choice == 5)
bothwordandclue = obj.Countries();
else
p.println("Wrong choice");
int counter = 6;
String guessword = bothwordandclue[0];
String wordclue = bothwordandclue[1];
int lengthofword = (int)(Math.round(((double)guessword.length()/2)));
int checkguess = 0;
String a;
StringBuffer guessit = new StringBuffer();
for (int i = 0;i < lengthofword; i++)
guessit = guessit.append("_ ");
guessit.delete((2 * lengthofword)-1,(2 * lengthofword));
if(guessword.indexOf('|') == -1)
System.out.print(" ");
else
guessit.setCharAt(guessword.indexOf('|'),'|');
p.println(guessit);
do
{
p.println();
p.println("Enter your guess letter in capitals");
String guessletter = br.readLine();
obj.clearScreen();
for(int i = 0;i<lengthofword;i++)
{
if(guessletter.charAt(0) == guessword.charAt(2*i))
{
guessit.setCharAt(2*i,guessletter.charAt(0));
checkguess=1;
}
}
if(checkguess == 1)
{
p.println("Correct Guess");
p.println(guessit);
}
else
{
counter--;
p.println("Wrong guess. You have " + counter +
" incorrect guesses left");
p.println(guessit);
}
checkguess = 0;
a = guessit.toString();
if(a.equals(guessword))
{
p.println("You guessed the word!!!!!");
counter=0;
}
}while(counter>0);
}
Upvote 문제가 내 것보다 효율적으로 해결 되었기 때문에 초보자에게는 분명하지 않습니다. http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String에 대한 링크가 포함되어있을 수 있습니다.html # indexOf (java.lang.String, int) –
@PWhite. 물론 :) –
고마워요. 이로 인해 문제가 매우 효과적으로 해결되었습니다. – crvineeth99