Scala Program: Check Palindrome using if/else and pattern matching
Write a Scala program to check if a given string is a palindrome using if/else statements and pattern matching.
Sample Solution:
Scala Code:
object PalindromeChecker {
def main(args: Array[String]): Unit = {
val str: String = "madam" // String you want to check
// val str: String = "Scala" // String you want to check
// Check using if/else statements
val isPalindrome: Boolean = checkPalindromeIfElse(str)
if (isPalindrome) {
println(s"The string $str is a palindrome.")
} else {
println(s"The string $str is not a palindrome.")
}
}
def checkPalindromeIfElse(str: String): Boolean = {
val reversed = str.reverse
if (str == reversed) {
true
} else {
false
}
}
def checkPalindromeMatch(str: String): Boolean = {
str.reverse match {
case `str` => true
case _ => false
}
}
}
Sample Output:
The string madam is a palindrome.
The string Scala is not a palindrome.
Explanation:
In the above exercise -
- First we define a variable str and assign it a value ("level" in this case) representing the string we want to check for palindromes.
- We have two functions: "checkPalindromeIfElse()" and "checkPalindromeMatch()". The first function uses if/else statements to check if the given string is a palindrome. It reverses the string using the reverse method and compares it with the original string. If they are equal, it returns true; otherwise, it returns false.
- The second function, "checkPalindromeMatch()", uses pattern matching. It reverses the string and matches it against the original string using a pattern. If the reversed string matches the original string, it returns true; otherwise, it returns false.
- We call both functions and print the results using println. If the returned value is true, the string is a palindrome; otherwise, it is not a palindrome.
Scala Code Editor :
Previous: Scala program to find the sum of array elements using a for loop.
Next: Count vowels with if/else and pattern matching.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics