I det här programmet lär du dig att kontrollera om en matris innehåller ett givet värde i Kotlin.
Exempel 1: Kontrollera om Int Array innehåller ett visst värde
fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 3 var found = false for (n in num) ( if (n == toFind) ( found = true break ) ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
När du kör programmet blir resultatet:
3 hittas.
I ovanstående program har vi en rad heltal lagrade i variabelnum. På samma sätt lagras numret som ska hittas i toFind.
Nu använder vi en for-in
slinga för att itera igenom alla element i num och kontrollera individuellt om toFind är lika med n eller inte.
Om ja, ställer vi in på true
och bryter från slingan. Om inte, går vi vidare till nästa iteration.
Exempel 2: Kontrollera om matrisen innehåller ett visst värde med hjälp av Stream
import java.util.stream.IntStream fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 7 val found = IntStream.of(*num).anyMatch ( n -> n == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
När du kör programmet blir resultatet:
7 hittades inte.
I ovanstående program konverterar vi arrayen till en istället för att använda en foreach-loop IntStream
och använder dess anyMatch()
metod.
anyMatch()
metoden tar ett predikat, ett uttryck eller en funktion som returnerar ett booleskt värde. I vårt fall jämför predikatet varje element n i strömmen till toFind och returnerar true
eller false
.
Om något av elementet n returnerar true
, är det också inställt att hitta true
.
Exempel 3: Kontrollera om matrisen innehåller ett givet värde för icke-primitiva typer
import java.util.Arrays fun main(args: Array) ( val strings = arrayOf("One", "Two", "Three", "Four", "Five") val toFind = "Four" val found = Arrays.stream(strings).anyMatch ( t -> t == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
När du kör programmet blir resultatet:
Fyra finns.
I ovanstående program, har vi använt en icke-primitiv datatyp String
och används Arrays
: s stream()
metod att först konvertera den till en ström och anyMatch()
för att kontrollera om arrayen innehåller det givna värdet tofind.
Här är motsvarande Java-kod: Java-program för att kontrollera om matrisen innehåller ett givet värde.