У меня проблема с моими линиями.charAt (0) и line.charAt (2). Я продолжаю получать сообщение об ошибке:Java rock, бумага, программа для ножниц с файловым вводом
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