segunda-feira, 10 de abril de 2017

Array - pesquisando e marcando ocorrências de caracteres

Cheguei agora pouco por aqui, e já tive uma ideia:
Se estou postando tanto códigos envolvendo arrays,
porque não continuar um pouco mais no assunto?
e foi no que deu...
Peguei o último post e comecei a trabalhar:
Neste o objetivo é de marcar no próprio array
todas as ocorrências de um caractere e contar.
Em poucos minutos ficou pronto:
A primeira coisa que fiz foi converter o array
multidimensional de string para um array
multidimensional de char e imprimir.
A entrada do caractere é via uma string pelo Scanner,
Más é convertido para char pelo método  toCharArray ( );
e em seguida é copiado no array de char busca previamente
declarado para isto, e a comparação é feita sem nenhum
dos famosos métodos do java, isto mesmo é feito diretamente.

Veja abaixo imagens do programa em execução:



Veja abaixo o código do programa:



import java.util.Scanner;
public class PROJETO {
     private static int Pesq ( ) {
         J jht = new J ( );
        jht.textbackground ( jht.WHITE );
      jht.Moldura ( ( short ) 1, ( short ) 24, ( short ) 2, ( short ) 78 );
      jht.title ( " " );
         int i, j, x = 0, y = 0;
         char [ ] oc = new char [ 50 ];
         char [ ] busca = new char [ 2 ];
         String [ ] [ ] texto = {
                   {"No Meio do Caminho                        \n"},
                   {"Carlos Drummond de Andrade                \n"},
                   {"No meio do caminho tinha uma pedra        \n"},
                   {"Tinha uma pedra no meio do caminho        \n"},
                   {"Tinha uma pedra                           \n"},
                   {"No meio do caminho tinha uma pedra.       \n"},
                   {"Nunca me esquecerei desse acontecimento   \n"},
                   {"Na vida de minhas retinas tão fatigadas.  \n"},
                   {"Nunca me esquecerei que no meio do caminho\n"},
                   {"Tinha uma pedra                           \n"},
                   {"Tinha uma pedra no meio do caminho        \n"},
                   {"No meio do caminho tinha uma pedra.       \n"}};
         jht.textcolor ( jht.LIGHTRED );
         jht.gotoxy ( ( short ) 19, ( short ) 2 );
         System.out.printf ( "MARCANDO OCORRÊNCIAS DE CARACTERES EM ARRAY " );
         jht.textcolor ( jht.BLACK );
         jht.gotoxy ( ( short ) 29, ( short ) 4 );
         System.out.printf ( "Imprimindo abaixo o array " );
         char [ ] [ ] ch_ar = new char [ texto.length ] [ ];
         for ( i = 0; i < texto.length; i++ ) {
              jht.gotoxy ( ( short ) 24, ( short ) i + 6 );
              for ( j = 0; j < texto [ i ].length; j++ ) {
                   ch_ar [ i ] = texto [ i ] [ j ].toCharArray ( );
                   jht.textcolor ( jht.LIGHTBLUE );
                   System.out.print ( ch_ar [ i ] );
              }
         }
         // /////////////////////////////////////////////////
         jht.textcolor ( jht.BLACK );
         jht.gotoxy ( ( int ) 24, ( int ) 19 );
         System.out.printf ( "Digite uma caracter: " );
         jht.textcolor ( jht.LIGHTRED );
         Scanner sc = new Scanner ( System.in );
         String c = sc.next ( );
         busca = c.toCharArray ( );// convert string para char
         // /////////////////////////////////////////////////
         for ( i = 0; i < ch_ar.length; i++ ) {
              jht.gotoxy ( ( short ) 24, ( short ) i + 6 );
              for ( j = 0; j < ch_ar [ i ].length; j++ ) {
                   if ( ch_ar [ i ] [ j ] == busca [ x ] ) {
                        jht.textcolor ( jht.LIGHTRED );
                        System.out.print ( ch_ar [ i ] [ j ] );
                        oc [ y ] = ch_ar [ i ] [ j ];
                        y++;
                   } else {
                        jht.textcolor ( jht.LIGHTBLUE );
                        System.out.print ( ch_ar [ i ] [ j ] );
                   }
              }
         }
         jht.textcolor ( jht.LIGHTBLUE );
         jht.gotoxy ( ( int ) 24, ( int ) 20 );
         jht.Sleep ( ( short ) 1500 );
         System.out.printf ( "Encontramos " );
         jht.textcolor ( jht.LIGHTRED );
         System.out.printf ( "%d", y );
         jht.textcolor ( jht.LIGHTBLUE );
         System.out.printf ( " ocorrências de " );
         jht.textcolor ( jht.LIGHTRED );
         System.out.print ( busca );
         jht.textcolor ( jht.LIGHTBLUE );
         System.out.printf ( " no array " );
         jht.textcolor ( jht.LIGHTRED );
         jht.gotoxy ( ( int ) 30, ( int ) 22 );
         System.out.printf ( "PRESSIONE QUALQUER TECLA" );
         jht.getche ( );
     /////////////////////////////////////////////////////////////////////
         jht.Apaga ( ( short ) 19, ( short ) 20, ( short ) 20, ( short ) 68 );
         jht.Apaga ( ( short ) 20, ( short ) 21, ( short ) 14, ( short ) 70 );
         jht.Apaga ( ( short ) 22, ( short ) 23, ( short ) 25, ( short ) 60 );
         jht.Sleep ( ( short ) 1800 );
         jht.textcolor ( jht.LIGHTBLUE );
         jht.gotoxy ( ( int ) 24, ( int ) 19 );
         System.out.printf ( "Por: " );
         jht.textcolor ( jht.LIGHTMAGENTA );
         System.out.printf ( "Samuel Lima" );
         jht.textcolor ( jht.BLACK );
         jht.gotoxy ( ( int ) 24, ( int ) 20 );
         System.out.printf ( "sa_sp10@hotmail.com" );
         jht.Sleep ( ( short ) 1800 );
         jht.textcolor ( jht.LIGHTRED );
         jht.gotoxy ( ( int ) 34, ( int ) 22 );
         System.out.printf ( "MUITO OBRIGADO" );
         jht.getche ( );
         System.exit ( 0 );
         return 0;
     }
     public static void main ( String [ ] args ) {
         Pesq ( );
     }
}

Nenhum comentário:

Postar um comentário

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