Mustang89 6 de jun. de 2010
public class Separador {
public void separador ( String s ){
for ( int i = 0 ; i < s . length (); i ++ ){
if ( s . charAt ( i ) == '(' ){
for (; s . charAt ( i ) != ')' ; i ++ ){
System . out . print ( s . charAt ( i ));
}
System . out . println ( s . charAt ( i ));
}
else
System . out . println ( s . charAt ( i ));
}
}
public static void main ( String [] args ) {
new Separador (). separador ( "(A>B)vH^(B*C)" );
}
}
DavidUser 6 de jun. de 2010
Tem problema quando existem expressões com mais de dois níveis…
teste por exemplo: ((G>T)>B)vH^(BC)
a saida deveria ser:
((G>T)>B)
v
H
^
(B C)
Mustang89 6 de jun. de 2010
tenta:
public class Separador {
public void separador ( String s ){
int countParenteses = 0 ;
for ( int i = 0 ; i < s . length (); i ++ ){
if ( s . charAt ( i ) == '(' ){
do {
if ( s . charAt ( i ) == '(' )
++ countParenteses ;
else if ( s . charAt ( i ) == ')' )
-- countParenteses ;
System . out . print ( s . charAt ( i ));
i ++ ;
} while ( countParenteses != 0 );
i -- ;
System . out . println ();
}
else
System . out . println ( s . charAt ( i ));
}
}
public static void main ( String [] args ) {
//new Separador().separador("(A>B)vH^(B*C)");
new Separador (). separador ( "((G>T)>B)vH^(B*C)" );
}
}
DavidUser 6 de jun. de 2010