Así que básicamente estoy tratando de convertir esta cadena: "(1+2)/2" a este "(1 + 2)/2". Y he probado esto:
String inputInfix = input.replaceAll("[^0-9/]", " [^0-9/] ");
Pero no funciona, ¿hay alguna forma de reemplazar todos los caracteres excepto "/" y los dígitos con un espacio a cada lado? Por ejemplo, "(1/2)" -> "(1/2)"
Puedes usar
input.replaceAll("(?<=[^\\s/])(?=[^\\s/])", " ")Vea la demostración de expresiones regulares . Detalles :
(?<=[^\s/]) - una mirada positiva hacia atrás que coincide con una ubicación que está inmediatamente precedida por un carácter que no sea un carácter de espacio en blanco y una barra inclinada(?=[^\s/]) : una búsqueda anticipada positiva que coincide con una ubicación seguida inmediatamente por un carácter que no sea un carácter de espacio en blanco y una barra inclinada.