Dada una string y una serie de prefijos. La tarea es verificar si la string dada comienza con alguno de los prefijos dados o no.
Ejemplo:
Entrada : String = «GeeksforGeeks», Prefijos = {«Geeks», «for», «Gfor»}
Salida : verdaderoEntrada : String = «GeeksforGeeks», Prefijos = {«Freaks», «for», «Freak»}
Salida : falso
A continuación se muestran los siguientes enfoques que se pueden utilizar para completar la tarea dada:
- Enfoque ingenuo : este método implica verificar explícitamente la string para cada uno de los elementos de la array de prefijos.
Algoritmo:
- Obtenga la string y los prefijos con los que se hará coincidir.
- Usando loop, itere a través de los prefijos y verifique si la string comienza con el prefijo respectivo. Esto se hace con la ayuda del método String.startsWith().
- Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.
Programa 1:
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Geeks"
,
"for"
,
"Gfor"
};
// Given string
String str =
"GeeksforGeeks"
;
boolean
result =
false
;
// Check for each prefix element
for
(
int
i =
0
; i <
3
; i++) {
if
(str.startsWith(arr[i])) {
result =
true
;
break
;
}
}
if
(result)
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String starts with one of the prefixes.
Programa 2:
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Freaks"
,
"for"
,
"Freak"
};
// Given string
String str =
"GeeksforGeeks"
;
boolean
result =
false
;
// Check for each prefix element
for
(
int
i =
0
; i <
3
; i++) {
if
(str.startsWith(arr[i])) {
result =
true
;
break
;
}
}
if
(result)
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String do not starts with one of the prefixes.
- Usando la expresión regular :
Algoritmo:
- Obtenga la string y los prefijos con los que se hará coincidir.
- Forme una expresión regular para verificar si la string comienza con alguno de los prefijos. Esto se puede hacer usando el método String.matches().
- Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.
Programa 1:
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Geeks"
,
"for"
,
"Gfor"
};
// Given String
String str =
"GeeksforGeeks"
;
// Check for prefixes using Regex
if
(str.matches(
"("
+ arr[
0
] +
"|"
+ arr[
1
] +
"|"
+ arr[
2
] +
").*"
))
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String starts with one of the prefixes.
Programa 2:
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Freaks"
,
"for"
,
"Freak"
};
// Given String
String str =
"GeeksforGeeks"
;
// Check for prefixes using Regex
if
(str.matches(
"("
+ arr[
0
] +
"|"
+ arr[
1
] +
"|"
+ arr[
2
] +
").*"
))
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String do not starts with one of the prefixes.
- Uso de la API de secuencias de Java 8 :
Algoritmo:
- Obtenga la string y los prefijos con los que se hará coincidir.
- Convierta los prefijos en flujo
usando Stream.of() - Compruebe si algún prefijo coincide con Predicate str::startsWith. Esto se hace usando el método Stream.anyMatch().
- Si algún prefijo coincide, devuelve verdadero; de lo contrario, devuelve falso.
Programa 1:
import
java.util.stream.Stream;
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Geeks"
,
"for"
,
"Gfor"
};
// Given String
String str =
"GeeksforGeeks"
;
// Convert the Prefixes into Stream using Stream.of()
// and check if any prefix matches using Predicate
// str::startsWith
if
(Stream.of(arr)
.anyMatch(str::startsWith))
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String starts with one of the prefixes.
Programa 2:
import
java.util.stream.Stream;
class
PrefixSearch {
public
static
void
main(String[] args)
{
// Array of prefixes
String[] arr = {
"Freaks"
,
"for"
,
"Freak"
};
// Given String
String str =
"GeeksforGeeks"
;
// Convert the Prefixes into Stream using Stream.of()
// and check if any prefix matches using Predicate
// str::startsWith
if
(Stream.of(arr)
.anyMatch(str::startsWith))
System.out.println(
"Given String "
+
"starts with one of the prefixes."
);
else
System.out.println(
"Given String do not "
+
"starts with one of the prefixes."
);
}
}
Producción:
Given String do not starts with one of the prefixes.
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA