我遇到了我的line.charAt(0)和line.charAt(2)的問題。我不斷收到一個錯誤消息:帶有文件輸入的Java岩石,紙張,剪刀程序
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at RockPaperScissors1.main(RockPaperScissors1.java:31)
我想不通爲什麼我那樣做。我的文件是這樣的:
3
2
R P
S R
3
P P
R S
S R
1
P R
這裏是我的程序:
import java.util.*;
import java.lang.*;
import java.io.*;
public class RockPaperScissors1
{
public static void main(String[] args) throws IOException
{
File file = new File("a.txt");
Scanner fin = new Scanner(file);
int cases = fin.nextInt();
String line = fin.nextLine();
int rounds = fin.nextInt();
for(int i = 0; i<cases; i++)
{
int tie = 0;
int p1win = 0;
int p2win = 0;
for(int j=0; j<rounds; j++)
{
char p1 = line.charAt(0);
char p2 = line.charAt(2);
if (p1 == p2)
tie = tie + 1;
else if (p1 == 'R')
{
if (p2 == 'S')
p1win = p1win + 1;
else if (p2 == 'P')
p2win = p2win + 1;
}
else if (p1 == 'P')
{
if (p2 == 'S')
p2win = p2win + 1;
else if (p2 == 'R')
p1win = p1win + 1;
}
else if (p1 == 'S')
{
if (p2 == 'P')
p1win = p1win + 1;
else if (p2 == 'R')
p2win = p2win + 1;
}
}
if(p1win > p2win)
System.out.println("Player 1");
else if(p2win > p1win)
System.out.println("Player 2");
else
System.out.println("Tie!");
}
}
}
任何幫助,將不勝感激。
所以我注意到我的代碼有「」(沒有)。 – user3230008
明白了!調試器幫了很多,謝謝! – user3230008