sábado, 10 de junho de 2017

Substituindo caracteres em array bidimensional de string


Os estudos de lógica de programação
com estrutura de dados nos permite
criar facilmente um array multidimensional de string,
e fazer troca de caracteres.
Neste exemplo, o array multidimensional de string
foi convertido em array multidimensional de char,
já que vamos fazer comparações com um caractere

introduzido pela entrada de dados.
Este caractere entra como String e é convertido
para array de char, e em seguida é comparado com
o array bidimensional de string.
Veja agora mesmo como isto foi feito.


Veja abaixo uma imagem do programa em execução:


Veja abaixo o código do programa:


import java.util.Scanner;


public class PROJETO {
     public static void Inform ( ) {
         J jht = new J ( );
         //////////////////////////////////////////////////////
     //Parâmetros da função printfx
     //Coord x, Coord y, String, cor de frente, cor de fundo,
     //Comprimento, Tempo, frequência, duração.
     jht.printfx ( 22, 23, "Por: ", 12, 15, 5, 0, 1000, 200 );
     jht.printfx ( 27, 23, "Samuel Lima", 9, 15, 11, 0, 0, 0 );
     jht.printfx ( 22, 24, "sa_sp10@hotmail.com", 0, 15, 20, 1800, 0, 0 );
     jht.printfx ( 33, 26, "MUITO OBRIGADO", 12, 15, 15, 0, 0, 0 );
     jht.getche ( );
     System.exit ( 0 );
     }
     public static void main ( String [ ] args ) throws Exception {
         J jht = new J ( );
         jht.Moldura ( 1, 28, 2, 78, 15 );
                String  [  ] [ ] string = {
                  {"XXX    XXX  XXX   XXX    XXX   XXXXXXXXX"},
                  {"XXX    XXX  XXX   XXX    XXX   XXXXXXXXX"},
                  {"XXX_  _XXX  XXX   XXX_  _XXX   XXX   XXX"},
                  {" XXX__XXX   XXX    XXX__XXX    XXXXXXXXX"},
                  {"  XXXXXX    XXX     XXXXXX     XXX   XXX"},
                  {"   XXXX     XXX      XXXX      XXX   XXX"},
                  {"    XX      XXX       XX       XXX   XXX"},
                  {"                                        "},
                  {"    XXXXX XXXXXXXXX XXX    XXX XXXXXXXXX"},
                  {"     XXX  XXXXXXXXX XXX    XXX XXXXXXXXX"},
                  {"     XXX  XXX   XXX XXX_  _XXX XXX   XXX"},
                  {"     XXX  XXXXXXXXX  XXX__XXX  XXXXXXXXX"},
                  {"XXX  XXX  XX    XXX   XXXXXX   XXX   XXX"},
                  {" XX  XX   XXX   XXX    XXXX    XXX   XXX"},
                  {"  XXXX    XXX   XXX     XX     XXX   XXX"}};    
         char [ ] ch1 = new char [ 2 ];
         char [ ] ch2 = new char [ 2 ];
         int i, j, x = 0;
         char [ ] [ ] ch_ar = new char [ string.length ] [ ];
         jht.poscolor ( 25, 2, 12, 15 );
         System.out.printf ( "SUBSTITUINDO CARACTERES EM MATRIZ " );
         for ( i = 0; i < string.length; i++ ) {
              jht.gotoxy ( 22, i + 4 );
              for ( j = 0; j < string [ i ].length; j++ ) {
                   ch_ar [ i ] = string [ i ] [ j ].toCharArray ( );
                   jht.textcolor ( 0 );
                   System.out.print ( ch_ar [ i ] );
              }
         }
         jht.poscolor ( 22, 20, 9, 15 );
         System.out.printf ( "Escolha um caracter para substituir => " );
         Scanner sc = new Scanner ( System.in );
         jht.textcolor ( 0 );
         String c = sc.next ( );
         ch1 = c.toUpperCase ( ).toCharArray ( );
         jht.gotoxy ( 45, 27 );
         jht.clreol ( );
         jht.poscolor ( 22, 21, 9, 15 );
         System.out.printf ( "Escolha um caracter para reposição ==> " );
         Scanner s_c = new Scanner ( System.in );
         jht.textcolor ( 0 );
         String c_1 = s_c.next ( );
         ch2 = c_1.toUpperCase ( ).toCharArray ( );
         for ( i = 0; i < ch_ar.length; i++ ) {
              for ( j = 0; j < ch_ar [ i ].length; j++ ) {
                   if ( ch_ar [ i ] [ j ] == ch1 [ x ] ) {
                        ch_ar [ i ] [ j ] = ch2 [ x ];
                   }
              }
         }
         for ( i = 0; i < ch_ar.length; i++ ) {
              jht.gotoxy ( 22, i + 4 );
              for ( j = 0; j < ch_ar [ i ].length; j++ ) {
                   if ( ch_ar [ i ] [ j ] == ch2 [ x ] ) {
                        jht.textcolor ( 0 );
                        System.out.print ( ch_ar [ i ] [ j ] );
                   } else {
                        jht.textcolor ( 0 );
                        System.out.print ( ch_ar [ i ] [ j ] );
                   }
              }
         }
         Inform ( );
     }
}
 

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.