I wrote a function to receive a string, a character, and a position.
/**
* Funcao para inserir um simbolo em certa posicao valida ENTRE outros
* em dada cadeia de caracteres.
* @param a - cadeia de caracteres
* @param b - character a inserir
* @param c - posicao de insercao
* @return cadeia de caracteres com character inserido.
*
* Teste:
* Para a = "palvra", b = 'A' e c = 3
* retorna palAvra
*
* Para a = "algorimos", b = 'T' e c = 6
* retorna algoriTmos
*/
public static String original (String a, char b, int c){
String nova;
int tamanho;
int i;
if (a == null) {
nova = ("Erro: string nula.");
} else {
tamanho = a.length();
// e' necessario que a string tenha ao menos duas letras para inserir
// caracteres entre a cadeia de caracteres
if (tamanho < 2) {
nova = ("Erro: tamanho da palavra invalido.");
} else {
// para que a posicao seja valida ela precisa estar entre o
// primeiro e o ultimo caracter da cadeia de caracteres.
if (c > 0 && c < tamanho) {
nova = ("Erro: posicao invalida.");
} else {
nova = "";
for (i = 0 ; i < tamanho ; i++) {
if (i != c) {
nova = nova + a.charAt(i);
} else {
nova = nova + b + a.charAt(i);
} // fim do if else
} // fim do for
} // fim do if else
} // fim do if else
} // fim do if else
return (nova);
} // fim do original
/**
* metodo para testar a funcao original
*/
public static void teste_01(){
String n;
String a;
char b;
int c;
a = IO.readString("\nPalavra: ");
b = IO.readchar("Caracter: ");
c = IO.readint("Posicao: ");
n = original(a, b, c);
IO.println("\nString: " + n);
} // fim do teste_01
The function is working ok, except that it is not returning the error to invalid positions (when I put a position bigger or equal to the size of the string), I could not understand why.