У меня проблема с заменой раздела строки в массиве. В основном, у меня есть строка, которая содержит:Как заменить раздел строки в массиве?
связь (att1, ATT2, att3) \ nRelation (att1, ATT2, att3)
я разделить строку, основанную на "\ п" и хранится в массиве : [Соотношение (att1, ATT2, att3), соотношение (att1, ATT2, att3)]
Моя проблема замены этого участка строки: (att1,att2,att3)
к ( )
для каждого элемента в массиве. Вот отрывок из моего кода:
String txt = "Relation(att1,att2,att3)\nRelation(att1,att2,att3)";
StringBuilder sb = new StringBuilder();
sb.append(txt);
String[] myArray = sb.toString().split("\n");
int startIdx = sb.indexOf("(");
int endIdx = sb.indexOf(")");
int i;
for(i=0; i<myArray.length; i++){
myArray[i] = myArray[i].replace(startIdx,endIdx,"( )");
}
System.out.println("---- Single Array ------");
System.out.println(Arrays.toString(myArray));
Проблема является линия внутри для цикла, это дает мне ошибки, заявив
«заменить (Char, Char) в типе String, не применяется для аргументов (Int, Int, String)»
Я исследовал другие способы, но ничего, как близко к использованию StringBuilder и IndexOf, чтобы удовлетворить мои потребности не нашли. Любые предложения о том, как это решить?
Таким образом, вы в основном хотят, чтобы заменить все внутри скобок одним пробелом? – Blub
Метод 'replace', который вы пытаетесь вызвать в классе строк, не принимает двух индексов. – merlin2011
@ EdgarBoda Да, так, например, (a, b, c) заменить на() – user11998