Decir si un String es múltiplo de un numero
Publicado por Gyanna (5 intervenciones) el 24/10/2019 21:38:39
Buenas,
Estoy haciendo un programa en el cual hay que poner 2 registros en un fichero binario, teniendo ambos el mismo nº de caracteres las cadenas: nombre apellido edad ciudad... debe comprobar cual es mayor de edad y ver si es múltiplo de 2, 3 y 5 y mi problema está en el método "comparaRegistro", no consigo sacar los múltiplos y no estoy segura si me hace bien la comparación
¿Me pueden ayudar, por favor?
Estoy haciendo un programa en el cual hay que poner 2 registros en un fichero binario, teniendo ambos el mismo nº de caracteres las cadenas: nombre apellido edad ciudad... debe comprobar cual es mayor de edad y ver si es múltiplo de 2, 3 y 5 y mi problema está en el método "comparaRegistro", no consigo sacar los múltiplos y no estoy segura si me hace bien la comparación
¿Me pueden ayudar, por favor?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class CompararCadenas {
public static void main(String[] args) throws IOException {
File f = new File("misFicheros/registro2.dat");
escribeRegistro(f, "Nombre1", "Apellido1", 20, "Ciudad1");
escribeRegistro(f, "Nombre2", "Apellido2", 30, "Ciudad2");
leeRegistro(f);
comparaRegistro(f);
}
private static void escribeRegistro(File file, String nombre, String apellido, int edad, String ciudad) throws IOException {
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.seek(raf.length());
raf.writeUTF(nombre);
raf.writeUTF(apellido);
raf.writeInt(edad);
raf.writeUTF(ciudad);
}
private static void leeRegistro(File file) throws IOException {
RandomAccessFile raf = new RandomAccessFile(file, "r");
raf.seek(0);
while (raf.getFilePointer()<raf.length()) {
System.out.println(" " +raf.readUTF()+ " " +raf.readUTF()+ " " +raf.readInt()+ " " +raf.readUTF());
}
}
private static void comparaRegistro(File file) throws IOException {
RandomAccessFile raf = new RandomAccessFile(file, "r");
raf.seek(0);
raf.skipBytes(30);
int compara1=raf.readInt();
System.out.println(compara1);
raf.seek(30);
raf.skipBytes(6);
int compara2=raf.readInt();
System.out.println(compara2);
raf.close();
if (compara1>compara2) {
System.out.println(compara1+ " es mayor");
raf.seek(0);
raf.skipBytes(30);
int multiplo=raf.readInt();
if (multiplo %2 ==0) {
System.out.println(multiplo+ " es multiplo de 2");
}else if (multiplo %3 ==0) {
System.out.println(multiplo+ " es multiplo de 3");
}else if (multiplo %5 ==0) {
System.out.println(multiplo+ " es multiplo de 5");
}
}else {
System.out.println(compara1+ "es mayor");
raf.seek(30);
raf.skipBytes(6);
int multiplo=raf.readInt();
if (multiplo %2 ==0) {
System.out.println(multiplo+ " es multiplo de 2");
}else if (multiplo %3 ==0) {
System.out.println(multiplo+ " es multiplo de 3");
}else if (multiplo %5 ==0) {
System.out.println(multiplo+ " es multiplo de 5");
}
}
}
}
- resultadoConsola.rar(13,6 KB)
Valora esta pregunta


0