Saturday, June 25, 2005

Problemas C, F y G


/*
* Created on 06/25/2005
*
* Esta clase fue probada con JUNIT, usando TDD
* Si desea ver los test, dejar un comentario
*/
package estructura.examen;

/**
* @author vns
*
*/
public class ManejoString {

/**
*
*/
public ManejoString() {
super();
}

/**
* F) Busca un substring en un string dado
*
* @param string
* @param retorno
* @param i
* @param len
*/
public static void subStr(String string, String r, int ind, int len) {
//TODO terminar test
for (int i = ind ; i < ind + len; i++) {
r = r + string.charAt(i);
}
}

/**
* G) Busca la posicion de una Subcadena dentro de otra,
* y si no se encuentra retorna 0
*
* @param string
* @param substring
*/
public static int find(String string, String substring) {
int cont = 0;

//primera manera de hacerlo
/*for (int i = 0; i < string.length(); i++) {
if ( string.charAt(i) == substring.charAt(0) )
for (int j = 0, pos = i; j < substring.length(); j++, pos++){
if ( string.charAt(pos) == substring.charAt(j) ){
cont++;
}else{
cont = 0;
break;
}

if (cont == substring.length()) {
return i;
}
}
}*/

// Segunda manera de hacerlo
for (int j = 0, pos = j; j < string.length(); j++){
if ( string.charAt(j) == substring.charAt(pos) ){
pos++;
cont++;
}else{
pos = 0;
cont = 0;
continue;
}

if ( cont == substring.length()) {
return j - cont + 1;
}
}
return 0;
}

/**
* C) Función length usando for
*
* @param string
* @return
*/
public static int lentghWithFor(String string) {

int i = 0;
for (;;) {
try {
string.charAt(i);
i++;
} catch (StringIndexOutOfBoundsException e) {
return i;
}
}
}

/**
* C) Función length usando While
*
* @param string
* @return
*/
public static int lentghWithWhile(String string) {
int i = 0;
while(true) {
try {
string.charAt(i);
i++;
} catch (StringIndexOutOfBoundsException e) {
return i;
}
}
}

}

0 Comments:

Post a Comment

<< Home