Ayuda en java

Me pregunta creo que es breve y sencilla
Pero tengo una duda y no he pillado solución no se si existe o no algún método, por ejemplo quiero revisar una matriz si esta en blanco la posición ago algo por ejemplo esto:
if (matriz[j]==" "){
}
abra algun metodo para solucionar o reemplazar el if?

otra consulta ahi alguna forma de declarar una matriz k reciba char y int?

1 respuesta

Respuesta
1
Lo de controlar si un elemento de una matriz está vacío o no, depende del tipo de matriz. No es lo mismo definir:
  String[] matriz = new String[10];
que
  int[] matriz = new int[10];
En el primer caso, si intentas recuperar un elemento de la matriz si haber asignado antes nada, te devolverá un null, y la comprobación la tendrías que hacer así:
if (matriz == null){
}
Si por un casual, la matriz está rellena con Strings vacíos, o sea "", entonces la comprobación sería:
if (matriz.equals("")){
}
Esto se hace así porque String no es un tipo de dato nativo, sino una clase. Por tanto hay que compararla con otro String usando el método equals() de los Strings, y no ==
En el segundo caso (la de la matriz de int), si intentas recuperar un elemento de la matriz sin haber asignado antes nada, te devolverá 0, y la comprobación:
if (matriz == 0){
}
Si quieres declarar una matriz donde puedas meter varios tipos de objetos, tendrías que declararla como:
Object[] matriz = new Object[10];
Pero ten cuidado!. No puedes meter dentro datos que sean de tipos nativos (int, char), sino datos que sean OBJETOS, como Integer o Character.
Hola
Lo que pasa es que la matriz la lleno con char lo leo de un archivo de .txt
Con eso lleno la matriz hasta un cierto numero y el resto de la matriz me queda vacía entonces la idea mía es rellenarla el resto pero con cualquier cosas letras numero, etc.
Saludos
Lo primero, perdona porque en mi anterior respuesta se me olvidó que el editor de texto de todoexpertos elimina algunas cadenas de caracteres, como "corchete + i + corchete". Por ello, aparece "matriz = 0" cuando quería poner "matriz[indice] = 0".
A lo que voy: si tienes una matriz de char inicializada como :
char[] matriz = new char[1000]
para saber si está vacía una posición, lo puedes saber con:
if (matriz[indice]==0){
}
En ese caso, puedes meter un espacio en blanco o lo que te apetezca.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;
public class encriptar {
public static void main(String[] args) throws IOException{
FileReader entrada=null;
int y = 0, con = 0;
entrada=new FileReader("prueba.txt");
// quero sacar el largo del archivo de texto 
// String hera = new String (entrada);
//    y = hera.length();
// System.out.println("hera: " + y);
 int c, clave;
 Random rnd= new Random();
 clave = rnd.nextInt(255)+1;
     System.out.println("clave: " + clave);
 while((c=entrada.read())!= -1){
  con++;
  if (con<64){
  char matriz[][] = new char[8][8];
   for (int i=0; i<8; i++){
    for (int j=0; j<8; j++){
       char carac = (char)c;
     matriz[j]=carac;   //asigno el caracter k leo
       c=entrada.read();
       con++;
      if (con==42){
        char clave1 = (char)clave;
//        System.out.println("clave1 " + clave1);
        matriz[j]=clave1;
        }          
        System.out.println("matriz: " + matriz[j]);
    }    }
    //llenado con ceros
      for (int i=0; i<8; i++){
      for (int j=0; j<8; j++){
  //     if (matriz[j].contentEquals("")){
  //      if (matriz[j].matches("")){
       if (matriz[j]==0){  // la idea es k aki leo si la matriz tiene espacio vacios o no
            System.out.println("matrizzz en blanco");   
        }}}
//
   }else{if (con>=64 && con<128){
   }else{if (con >=128 && con <256){
   }else{System.out.println("su texto es demaciado grande para este programa tiene k");
       System.out.println( "ser menor a 256 caracteres");}
         }}
   }
 }
 }
La idea mía es saber donde o cuales están vacías de la matriz[j]
Y otra consulta como se el largo del texto que tengo
.length(); como tendria k ocuparlo con file?????
Para comprobar el tamaño en bytes de un archivo, lo puedes hacer con el método File. length(). Es un poco cutre, pero puedes comprobar de antenano cuánto ocupa un archivo que tenga 256 caracteres, y luego comparar el tamaño del fichero que te pasan con ese valor.
Otra forma es leerte todo el texto en un vector de líneas (Strings). Si quieres leer líneas de texto, te recomiendo que uses la clase BufferedReader, que tiene el método readLine(). Puedes ir metiendo todo el texto en un vector de líneas, o usar un único String para ir concatenando las líneas leídas (cuidado con los saltos de línea, que ocupan espacio)
Para saber si un elemento de la matriz está vacío, con compararlo con 0 es suficiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas