la clase Stack de java.utils ofrece una estructura de datos tipo pila con, con el metodo peek se accede a su tope y con pop() se elmina el tope
public static void main(String[] args) {
Stack pila = new Stack();
System.out.println(pila.isEmpty());
pila.add("luisa");
pila.add("pepe");
pila.add("toño");
pila.add("mario");
System.out.println("tope de pila:"+pila.peek());
System.out.println("eliminando :"+pila.pop());
System.out.println("tope de pila:"+pila.peek());
}
resultado de la ejecucion
run:
true
tope de pila:mario
eliminando :mario
tope de pila:toño
domingo, 9 de septiembre de 2012
Hashtable java
la clase Hastable crea una estructura de clave - valor, el siguiente metodo crea una hashtable con claves int y valores String
1 -> pepe
2 -> luis
3 -> maria
public static void main(String[] args) {
Hashtable hashTable= new Hashtable();
hashTable.put(1, "juan");
System.out.println("valor de la clave 1:"+hashTable.get(1));
hashTable.put(1, "pepe");
System.out.println("remplazando el valor de la clave 1:"+hashTable.get(1));
hashTable.put(999, "luis");
hashTable.put(7, "maria");
System.out.println("¿contiene clave 7?:"+hashTable.containsKey(7));
System.out.println("eliminando");
hashTable.remove(999);
System.out.println(hashTable.get(999));
}
el resultado de la ejecucion
run:
valor de la clave 1:juan
remplazando el valor de la clave 1:pepe
¿contiene clave 7?:true
eliminando
null
Listas con java
public static void main(String[] args) {
List<String> listaNombres = new ArrayList<String>();
listaNombres.add("juan");
listaNombres.add("pepe");
listaNombres.add("maria");
System.out.println("tamaño:"+listaNombres.size());
System.out.println("tercer elemento:"+listaNombres.get(2));
System.out.println("Eliminando elemento <maria>");
listaNombres.remove("maria");
System.out.println("tamaño:"+listaNombres.size());
System.out.println("todos");
for(String nombre:listaNombres){
System.out.println(nombre);
}
}
resultado en consola
tamaño:3
tercer elemento:maria
Eliminando elemento <maria>
tamaño:2
todos
juan
pepe
Expresiones regulares, validacion con java regex
java tiene una api para la validacion de expresiones regulares, el siguiente metodo valida que la string sea un mail de gmail.com
public static boolean isCorreoGmail(String correo) {
Pattern pat =Pattern.compile("^([0-9a-zA-Z]([_.w]*[0-9a-zA-Z])*@gmail.com)$");
Matcher mat =pat.matcher(correo);
if (mat.find()) {
System.out.println("[" + mat.group() + "]");
return true;
}
return false;
}
public static boolean isCorreoGmail(String correo) {
Pattern pat =Pattern.compile("^([0-9a-zA-Z]([_.w]*[0-9a-zA-Z])*@gmail.com)$");
Matcher mat =pat.matcher(correo);
if (mat.find()) {
System.out.println("[" + mat.group() + "]");
return true;
}
return false;
}
Construct | Description |
---|---|
[abc] | a, b, or c (simple class) |
[^abc] | Any character except a, b, or c (negation) |
[a-zA-Z] | a through z, or A through Z, inclusive (range) |
[a-d[m-p]] | a through d, or m through p: [a-dm-p] (union) |
[a-z&&[def]] | d, e, or f (intersection) |
[a-z&&[^bc]] | a through z, except for b and c: [ad-z] (subtraction) |
[a-z&&[^m-p]] | a through z, and not m through p: [a-lq-z] (subtraction) |
Construct | Description |
---|---|
. | Any character (may or may not match line terminators) |
\d | A digit: [0-9] |
\D | A non-digit: [^0-9] |
\s | A whitespace character: [ \t\n\x0B\f\r] |
\S | A non-whitespace character: [^\s] |
\w | A word character: [a-zA-Z_0-9] |
\W | A non-word character: [^\w] |
Greedy | Reluctant | Possessive | Meaning |
---|---|---|---|
X? | X?? | X?+ | X , once or not at all |
X* | X*? | X*+ | X , zero or more times |
X+ | X+? | X++ | X , one or more times |
X{n} | X{n}? | X{n}+ | X , exactly n times |
X{n,} | X{n,}? | X{n,}+ | X , at least n times |
X{n,m} | X{n,m}? | X{n,m}+ | X , at least n but not more than m times |
Boundary Construct | Description |
---|---|
^ | The beginning of a line |
$ | The end of a line |
\b | A word boundary |
\B | A non-word boundary |
\A | The beginning of the input |
\G | The end of the previous match |
\Z | The end of the input but for the final terminator, if any |
\z | The end of the input |
javadoc con annotations
En netbeans y otros IDE puede ponersele una explicacion a los metodos y clases para algun otro usuario que valla a utilizar nuestro codigo
/**
* La explicacion que se ponga en este espacio es la que
* aparece con ctr - space en netbeans
* se debe poner una etiqueta param para cada parametro que reciba
* @param dia true es para dia y false para noche
* @param ingles true es para ingles y false para español
* @return un saludo en español o ingles, para el dia o para la noche
*/
public String getSaludo(boolean dia, boolean ingles){
if(dia && ingles){
return "good days";
}else if(dia && !ingles){
return "buenos dias";
}else if(!dia && ingles){
return "good nights";
}else{
return "buenas noches";
}
}
public void test(){
String saludo=getSaludo(true, false);
System.out.println(saludo);
}
leer archivo con java
JFileChooser chooser= new JFileChooser();
chooser.setDialogTitle("seleccione un block de notas");
chooser.setMultiSelectionEnabled(false);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int sel = chooser.showOpenDialog(this);
if (sel == JFileChooser.APPROVE_OPTION){
File selectedFile = chooser.getSelectedFile();
String cadena="";
try {
FileInputStream fis = new FileInputStream(selectedFile);
int ch;
while((ch= fis.read()) != -1){
cadena=cadena+ (char)ch;
}
} catch (Exception ex) {
System.out.println("error en la lectura del archivo");
}
this.jTextField1.setText(cadena);
}
Suscribirse a:
Entradas (Atom)