По какой-то причине я пытаюсь использовать Matcher
, но иногда это дает мне PatternSyntax Exception
. я знаю, что в моем случае это означает, что +
является зарезервированным персонажем и должен избегать его. но моя строка не имеет такой характер, в нем вообще:PatternSyntax Exception, Dangling meta character '+' рядом с индексом 0
Pattern p=Pattern.compile(test,Pattern.CASE_INSENSITIVE);
StringBuffer testing=new StringBuffer (node.getNodeValue());
matcher=p.matcher(testing);
if(!matcher.hitEnd())
{
if(matcher.find())
{
i++;
}
}
исключение выбрасывается в Pattern p=Pattern.compile(test,Pattern.CASE_INSENSITIVE);
test
строка только некоторые слова или символы, которые не являются в любом случае +
или *
и т.д. .
здесь список слов, которые test
будут заменены с ними для цикла:
EDIT
Я использовал ответ Elliott Фриша однако теперь странное исключение происходит:
for(int j=0;j<index2;j++)
{
test = (test != null) ? test.toLowerCase() : null;
str = (str != null) ? str.toLowerCase() : "";
if (str.contains(test))
{
X[Index]= keArrayList.indexOf(test);
Index++;
}
}
int[] X=new int[100000];
private static final double[] Y=new double[100000];
for(int i=0;i<Index;i++)
{
felan=Y[X[i]];
}
здесь, хотя оба индекса цикла значительно меньше, чем 100000
но в первой итерации я получаю это:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
это что-то связанное с условием if или что?
Что такое 'test', точно? – August
как я объяснил в вопросе, это некоторые слова, которые я извлек из случайной веб-страницы. – lonesome
Важно знать _actual contents_. – August