Java - Tengo un problema que parece ser de un fantasma

 
Vista:
Imágen de perfil de Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Tengo un problema que parece ser de un fantasma

Publicado por Sandro (166 intervenciones) el 05/04/2020 22:46:46
Hola Buenos Días Compañeros:

Tengo un problema que parece ser de un fantasma!

Tengo un serie de subrutinas, que hacen ciertas modalidades, pero hay una de ellas, que busca un string dentro de otro string y sustituye lo que quieras a lo que quieras, pero resulta que esta subrutina se queda en un loop, no es infinito eso es lo mas raro, pero se pierde mucho el tiempo.

Ya se coloco en break cuando se cumple la condición a un así no sale le loop, hay quien me pueda tirar una mano.

Es en el método ' r '


Se lo agradeceré.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rene
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Tengo un problema que parece ser de un fantasma

Publicado por Rene (6 intervenciones) el 08/04/2020 01:03:46
Publique el pedazo del programa que esta haciendo eso y asi se le podra ayudar mas facilmente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Tengo un problema que parece ser de un fantasma

Publicado por Sandro (166 intervenciones) el 08/04/2020 01:34:11
Esto es la salida:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
String [ 2 ]:
	i:0	1
 String _ :deberia de termina con index = -1 pero el valor de index es:1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
.
.
.
String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String _ :deberia de termina con index = -1 pero el valor de index es:-1
 String [ 449 ][]:

no es infinito cuantas vueltas no lo se, pero si hace lo que debe, pero no cuando uno le dice que salga de la rutina


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
protected	static	String		r	(	String
									busca			,
								String
									linea			,
								String
									remplace		)	{
		int		index							=	-1									,
				lng_Busca						=	busca
														.length
												(										),
				lng_Remplace					=	remplace
														.length
												(											)	;
		do																						{
			if	(	index						!=	-1										)	{
				if	(	index					==	0										)	{
					linea						=	remplace
												+		subString
														.recorta
												(		lng_Busca
												+			1							,
														linea								)	;
				}	else	if	(	index		!=	-1										)	{
					linea						=	subString
														.recorta
												(		0								,
														index							,
														linea							)
												+		remplace
												+		subString
														.recorta
												(		index
												+		lng_Busca						,
														linea								)	;
					index						+=	lng_Remplace								;
				}
			}
			index								=	a
												(	busca								,
													index								,
													linea									)	;
			print
				.linea							(	"deberia de termina con index = -1 p"
												+	"ero el valor de index es:"
												+		index								)	;
			if	(	index						==	-1										)	{
				break																			;
			}
		}	while	(	index					!=	-1										)	;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
protected	static	int		a	(	String
									busca			,
								int
									comienza		,
								String
									linea			)	{
		comienza								=	linea
														.indexOf
												(			busca						,
															comienza							)	;
		return			comienza																	;
	}
 
	protected	static	int		a	(	String
									busca			,
								String
									linea			)	{
		int		fin					=	a
									(	busca		,
										0			,
										linea		)	;
		return		fin									;
	}

ya esta


gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Tengo un problema que parece ser de un fantasma

Publicado por Rodrigo (623 intervenciones) el 08/04/2020 06:00:38
No estoy acostumbrado a leer codigo con esa indentacion.

Se esta llamando la funcion r dentro de un ciclo?
Si es asi, podrias mostrar como se esta llamando la funcion r?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Tengo un problema que parece ser de un fantasma

Publicado por Sandro (166 intervenciones) el 08/04/2020 13:58:23
Si se esta llamando dentro de otro ciclo, pero no continua con las demás instrucciones que además, hay un insert de por medio el cual no hace.

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
for	(	int			i				=	0										;
								i				<	size									;
								i				++												)	{
				int		size_1					=	valores				[	i	]
														.length										;
				String			busca			=	"'"											,
								sustituye		=	".="											;
				direccion_Principal				=	find_1
														.r
												(		busca								,
														valores			[	i	][	0	]	,
														sustituye								)	;
				pos_Inicial						=	convert
														.stringToInt
												(		valores			[	i	][	1	]		)	;
				pos_Final						=	convert
														.stringToInt
												(		valores			[	i	][	3	]		)	;
				campos							=	"(`Id Ville`							,"
												+	"`Campo`								,"
												+	"`Direccion Principal`					,"
												+	"`Mundo`								,"
												+	"`Pos Inicial`							,"
												+	"`Pos Final`							,"
												+	"`Ville`								)"
												+	"values									("
												+		id
												+	"										,'"
												+		campo
												+	"'										,'"
												+		direccion_Principal
												+	"'										,'"
												+		mundo
												+	"'										,"
												+		pos_Inicial
												+	"										,"
												+		pos_Final
												+	"										,'"
												+		villa
												+	"'										"		;
				tabla							=	"`manda Html Mundo`"							;
				_insert							(	base									,
													campos									,
													campos_Upd								,
													tabla										)	;

Se cambio la manera de salir del do { finciones dentro del metodo ' r ' }

por:

1
2
3
4
5
6
7
8
boolean salida = false;
for ( int i = 0;
    !salida;;){
funciones anteriores del metodo ' r ';
if ( index == -1){
   salida=true;
}
}

y funciona de la mil maravillas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar