elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda sencilla en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sencilla en Java  (Leído 4,291 veces)
Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Duda sencilla en Java
« en: 7 Marzo 2011, 23:20 pm »

Hola a todos, recién hoy estoy comenzando con java y bueno, estoy probando mis primeros códigos pero me topé con un problema. A ver si pueden ayudarme:

Código:
class pruebajava {
    public static void main(String[]args) {
            String mensaje;
            String mensaje2;
            String nombre = "Normah";
            char palabra_clave = 'h';
            int nombre_cantidadLetras = nombre.length();
            mensaje = (nombre_cantidadLetras >= 7) ? nombre + " tiene 7 o más caractéres": nombre + " tiene menos de 7 caractéres";
            System.out.println(mensaje);
            mensaje2 = (nombre.equals(palabra_clave)) ? nombre + " posee la letra " + palabra_clave : nombre + " no posee la letra " + palabra_clave;
            System.out.println(mensaje2);
  }
}

La primera parte de ver si tiene 'x' cantidad de caracteres va bien. Ahora el problema está en el segundo condicional. Yo le indico que busque la palabra_clave (en este caso 'h') en el nombre (en este caso "Normah") y me dice que no existe. Ahora yo me pregunto, ¿por qué no existe si yo veo ahí que si está?.
Bien, ahora comprobé de la siguiente forma:

Código:
class pruebajava {
    public static void main(String[]args) {
            String mensaje;
            String mensaje2;
            String nombre = "Normah";
            char palabra_clave = 'h';
            int nombre_cantidadLetras = nombre.length();
            mensaje = (nombre_cantidadLetras >= 7) ? nombre + " tiene 7 o más caractéres": nombre + " tiene menos de 7 caractéres";
            System.out.println(mensaje);
            mensaje2 = (nombre.equals("Normah)) ? nombre + " posee Normah" : nombre + " no posee Normah";
            System.out.println(mensaje2);
  }
}

Es decir, comprobando el string completo devuelve bien el valor. Resumiendo:

¿No puedo comparar un String con un char utilizando equals()?. ¿Cómo se solucionaría?. Entiendan que soy novato en este lenguaje y que bueno, quiero sacarme las mayores dudas posibles.

PD: Utilizo Netbeans 6.9.1


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Duda sencilla en Java
« Respuesta #1 en: 8 Marzo 2011, 00:05 am »

Obvio, porque estas comparando la cadena completa es decir,
Código
  1. "Normah" != 'h'

Puedes hacer lo siguiente,
Código
  1. class PoC {
  2.  public static void main(String[] args) {
  3.  
  4.    String sTexto = "Holah";
  5.    String sTextoBuscado = "i";
  6.  
  7.    if(sTexto.indexOf(sTextoBuscado) > -1){
  8.      System.out.println ("Si");
  9.    }else{
  10.      System.out.println ("No");
  11.    }
  12.  
  13.  }
  14. }


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: Duda sencilla en Java
« Respuesta #2 en: 8 Marzo 2011, 00:23 am »

Gracias. Es cierto, olvide lo del IndexOf() que acababa de aprender :-X. Por cierto una pregunta más:

En los videotutoriales que estoy mirando (de Jesús Conde, por cierto) siempre tanto él manualmente como Netbeans inician con:

Código:
class nombre {
  public static void main(String[] args) {

Lo de class según lo que entendí tiene que tener relacion alguna con el nombre del Package , aunque a mi siempre me devuelve Incorrect Package no se porque (me funciona de todos modos).
Y ahora lo que sigue, entiendo que es el "menú por donde comenzar" el programa, no comprendo que hace public/private y por que el void (aunque supongo que lo del void es porque se le va a pasar más de un valor de diferentes tipos :huh:). Y después (String[] args) me recuerda a funciones en donde pasamos parámetros, pero acá no..
A ver si me pueden ayudar este poquito más que intento comprender el código por completo. Gracias.
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Duda sencilla en Java
« Respuesta #3 en: 8 Marzo 2011, 00:32 am »

Gracias. Es cierto, olvide lo del IndexOf() que acababa de aprender :-X. Por cierto una pregunta más:

En los videotutoriales que estoy mirando (de Jesús Conde, por cierto) siempre tanto él manualmente como Netbeans inician con:

Código:
class nombre {
  public static void main(String[] args) {

Lo de class según lo que entendí tiene que tener relacion alguna con el nombre del Package , aunque a mi siempre me devuelve Incorrect Package no se porque (me funciona de todos modos).
Y ahora lo que sigue, entiendo que es el "menú por donde comenzar" el programa, no comprendo que hace public/private y por que el void (aunque supongo que lo del void es porque se le va a pasar más de un valor de diferentes tipos :huh:). Y después (String[] args) me recuerda a funciones en donde pasamos parámetros, pero acá no..
A ver si me pueden ayudar este poquito más que intento comprender el código por completo. Gracias.
Mira, de uno en uno.

Private y public se hace para que el intérprete no reserve tanta memoria, si no la vas a usar en un contexto externo pon private, así no se declara en todos los ámbitos y se aligera el programa.

void, es un tipo de dato, vacío o nulo en algún contexto, quiere decir que no devuelve ningún valor, si es int, tiene que devolver un int, si es float, un float...

String[] args son los parámetros de la función principal, los que recibe el programa por línea de comandos, para que me entiendas:

./miprogramajava argumento1

argumento1 estaría en el array, recuerda además que los primeros indices incluyen información relativa al contexto del programa.


Saludos ;)
En línea

Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: Duda sencilla en Java
« Respuesta #4 en: 8 Marzo 2011, 00:39 am »

Muchas gracias :D. Y por cierto, ¿static?. Estuve leyendo y entendí como que se declara así para compartir valores de una variable pero sinceramente no comprendo bien para que es (hoy lo vi, junto con final que tampoco lo entendí del todo, aunque creo que es para que esa variable no se mueva de esa clase)
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Duda sencilla en Java
« Respuesta #5 en: 8 Marzo 2011, 01:37 am »

Creo que final es para una variable constante, es decir, que sólo tendra ese valor durante la ejecución de la aplicación.
:http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/La_palabra_reservada_final
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Duda sencilla en Java
« Respuesta #6 en: 8 Marzo 2011, 01:45 am »

El atributo static y final (combinados juntos) sirve para declarar atributos constantes, y su inicialización se hace al declararla (aunque creo recordar que también deja inicializarla en el constructor).

Al definir un atributo como final estas diciendo al compilador que esa variable no va a cambiar su valor, por tanto debe inicializarse en el momento de la declaración o en el constructor (si no lo declaras en ninguno de estos dos sitios el compilador te informará del error). No se que entorno de desarrollo usarás, pero te recomiendo en gran medida Eclipse, a mi me ha funcionado muy bien y te informa de los errores sintácticos en el momento que estás escribiendo.

Espero haberte servido de ayuda, saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sencilla sobre swishmax ??
Diseño Gráfico
mit 4 3,205 Último mensaje 9 Enero 2004, 13:46 pm
por mit
Una duda sencilla
Programación Visual Basic
vivachapas 3 1,452 Último mensaje 26 Mayo 2006, 04:48 am
por JuszR
[DUDA SENCILLA] DELPHI
Programación General
Psyke1 3 2,632 Último mensaje 5 Octubre 2010, 20:00 pm
por Psyke1
sencilla duda con .NullPointerException ,
Java
manolazo 2 1,776 Último mensaje 16 Enero 2013, 12:24 pm
por manolazo
Duda sencilla
Java
Juanma91 2 1,716 Último mensaje 6 Junio 2014, 11:22 am
por Juanma91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines