В моем свином латинском переводчике я получаю:
errorjava.util.regex.PatternSyntaxException: незамкнутый класс символов рядом с индексом 10 [C @ 55f96302
Каждый раз, когда я его компилирую.
В моем коде есть два метода: один для удаления специального символа в конце пользовательского ввода и разделения слов вверх, а другой для фактического перевода слов.
Вот мой код:
package midtermPigLatin;
import java.util.Scanner;
import java.util.Arrays;
import textio.TextIO;
public class midtermPigLatin {
public static void main(String[] args)
{
String yourSentence="", line = "", single,line1 = "", pigLatin = "";
Scanner input = new Scanner( System.in );
Scanner word = new Scanner(line);
String[] words;
char[] special = {'.', '?','!'};
String specialChar = special.toString();
boolean again = true;
try {
System.out.print("Enter your words here: ");
label1: while(input.hasNextLine())
{
line = input.nextLine();
line1 = line.replaceAll(specialChar, "");
word = new Scanner (line);
while(word.hasNext())
{
single = word.next();
pigLatin = pigLatin(single);
if (word.hasNext())
{
System.out.print(pigLatin + " " );
}
else if(!word.hasNext())
{
System.out.print( pigLatin);
break label1;
}
}
}
}catch(Exception errMsg)
{
System.out.print(" error" + errMsg);
}
}
public static String pigLatin(String single)
{
String newWord = "";
try
{
if (single.startsWith("a") || single.startsWith("e") || single.startsWith("i") || single.startsWith("o") || single.startsWith("u"))
newWord = (single + "way ");
else if (single.startsWith("sh") || single.startsWith("ch") || single.startsWith("th"))
newWord =(single.substring(2)+single.substring(0,2)+"ay ");
else
newWord = (single.substring(1)+single.substring(0,1)+"ay ");
}
catch (Exception errMsg)
{
System.out.println("Error in special" + errMsg);
}
return newWord;
}
}
По правилам моих профессоров мне нужно иметь как минимум два метода и пробные уловки, чтобы
я не мог их вынуть.