Voglio scrivere un metodo che, dato un array di stringhe ordinato, e passando come parametro al metodo una stringa:
- restituisca -10 se la stringa cercata è presente nell'array
- inserisce la stringa cercata se non è presente nell'array e restituisce la posizione in cui l'ha inserita
- lanci un'eccezzione se l'array è pieno.
Io ho scritto questo ma non va..
codice:
import java.util.*;
public class Array {
Scanner tast = new Scanner(System.in);
private String[] elementi;
private int numElementi;
public Array(String[] a, int i) {
elementi = a;
numElementi = 1;
}
public int aggiungiElem(String val) throws IllegalStateException {
int h = 0;
while(h < elementi.length) {
if(elementi[h].equals(val))
return -1;
else
h++;
}
int j = 0;
for(int i = 0; i < numElementi && elementi[i].compareTo(val) < 0; i++)
j = i + 1;
for(int i = numElementi; i > j; i--)
elementi[i] = elementi[i - 1];
elementi[j] = val;
return j;
}
}
main
codice:
import java.util.Scanner;
public class TestArray {
public static void main(String[] args) {
Scanner tast = new Scanner(System.in);
String[] a = {"c", "d", "e", "g", "o", "p", "r", "z"};
Array r = new Array(a, 15);
try {
System.out.println("Inserisci una stringa: ");
String s = tast.nextString();
a.inserisci(s);
} catch(IllegalStateException ecc) {
System.out.println("Array pieno");
}
}
Grazie