检查两个字符串是否相同,忽略它们的情况
原文:https://www . geesforgeks . org/check-如果两个字符串相同-忽略它们的大小写/
给定两个字符串 str1 和 str2。任务是检查如果遵循不区分大小写的比较,即在 Java 中忽略字符串的大小写,两个给定的字符串是否相同。 例:
Input: str1 = "Geeks", str2 = "geeks"
Output: Same
Input: str1 = "Geek", str2 = "geeksforgeeks"
Output: Not Same
方法 1:天真的方法
- 将第一个字符串的每个字符与第二个字符串的相应字符进行比较。
- 如果匹配,比较下一个字符。
- 如果不匹配,通过忽略它们的案例来检查是否匹配。
- 如果匹配,比较下一个字符。
- 如果所有字符都匹配,则返回 true
- 如果任何字符不匹配,则返回 false。
实现如下。
C++
#include <iostream>
using namespace std;
// Function to compare two strings
// ignoring their cases
bool equalIgnoreCase(string str1, string str2)
{
int i = 0;
// length of first string
int len1 = str1.size();
// length of second string
int len2 = str2.size();
// if length is not same
// simply return false since both string
// can not be same if length is not equal
if (len1 != len2)
return false;
// loop to match one by one
// all characters of both string
while (i < len1) {
// if current characters of both string are same,
// increase value of i to compare next character
if (str1[i] == str2[i]) {
i++;
}
// if any character of first string
// is some special character
// or numeric character and
// not same as corresponding character
// of second string then return false
else if (!((str1[i] >= 'a' && str1[i] <= 'z')
|| (str1[i] >= 'A' && str1[i] <= 'Z'))) {
return false;
}
// do the same for second string
else if (!((str2[i] >= 'a' && str2[i] <= 'z')
|| (str2[i] >= 'A' && str2[i] <= 'Z'))) {
return false;
}
// this block of code will be executed
// if characters of both strings
// are of different cases
else {
// compare characters by ASCII value
if (str1[i] >= 'a' && str1[i] <= 'z') {
if (str1[i] - 32 != str2[i])
return false;
}
else if (str1[i] >= 'A' && str1[i] <= 'Z') {
if (str1[i] + 32 != str2[i])
return false;
}
// if characters matched,
// increase the value of i to compare next char
i++;
} // end of outer else block
} // end of while loop
// if all characters of the first string
// are matched with corresponding
// characters of the second string,
// then return true
return true;
} // end of equalIgnoreCase function
// Function to print the same or not same
// if strings are equal or not equal
void equalIgnoreCaseUtil(string str1, string str2)
{
bool res = equalIgnoreCase(str1, str2);
if (res == true)
cout << "Same" << endl;
else
cout << "Not Same" << endl;
}
// Driver Code
int main()
{
string str1, str2;
str1 = "Geeks";
str2 = "geeks";
equalIgnoreCaseUtil(str1, str2);
str1 = "Geek";
str2 = "geeksforgeeks";
equalIgnoreCaseUtil(str1, str2);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
class GFG
{
// Function to compare two strings
// ignoring their cases
static boolean equalIgnoreCase(String str1, String str2)
{
int i = 0;
// length of first string
int len1 = str1.length();
// length of second string
int len2 = str2.length();
// if length is not same
// simply return false since both string
// can not be same if length is not equal
if (len1 != len2)
return false;
// loop to match one by one
// all characters of both string
while (i < len1)
{
// if current characters of both string are same,
// increase value of i to compare next character
if (str1.charAt(i) == str2.charAt(i))
{
i++;
}
// if any character of first string
// is some special character
// or numeric character and
// not same as corresponding character
// of second string then return false
else if (!((str1.charAt(i) >= 'a' && str1.charAt(i) <= 'z')
|| (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'Z')))
{
return false;
}
// do the same for second string
else if (!((str2.charAt(i) >= 'a' && str2.charAt(i) <= 'z')
|| (str2.charAt(i) >= 'A' && str2.charAt(i) <= 'Z')))
{
return false;
}
// this block of code will be executed
// if characters of both strings
// are of different cases
else
{
// compare characters by ASCII value
if (str1.charAt(i) >= 'a' && str1.charAt(i) <= 'z')
{
if (str1.charAt(i) - 32 != str2.charAt(i))
return false;
}
else if (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'Z')
{
if (str1.charAt(i) + 32 != str2.charAt(i))
return false;
}
// if characters matched,
// increase the value of i to compare next char
i++;
} // end of outer else block
} // end of while loop
// if all characters of the first string
// are matched with corresponding
// characters of the second string,
// then return true
return true;
} // end of equalIgnoreCase function
// Function to print the same or not same
// if strings are equal or not equal
static void equalIgnoreCaseUtil(String str1, String str2)
{
boolean res = equalIgnoreCase(str1, str2);
if (res == true)
System.out.println( "Same" );
else
System.out.println( "Not Same" );
}
// Driver Code
public static void main(String args[])
{
String str1, str2;
str1 = "Geeks";
str2 = "geeks";
equalIgnoreCaseUtil(str1, str2);
str1 = "Geek";
str2 = "geeksforgeeks";
equalIgnoreCaseUtil(str1, str2);
}
}
// This code is contributed by Arnab Kundu
Python 3
# Function to compare two strings
# ignoring their cases
def equalIgnoreCase(str1, str2):
i = 0
# length of first string
len1 = len(str1)
# length of second string
len2 = len(str2)
# if length is not same
# simply return false since both string
# can not be same if length is not equal
if (len1 != len2):
return False
# loop to match one by one
# all characters of both string
while (i < len1):
# if current characters of both string are same,
# increase value of i to compare next character
if (str1[i] == str2[i]):
i += 1
# if any character of first string
# is some special character
# or numeric character and
# not same as corresponding character
# of second string then return false
elif (((str1[i] >= 'a' and str1[i] <= 'z') or
(str1[i] >= 'A' and str1[i] <= 'Z')) == False):
return False
# do the same for second string
elif (((str2[i] >= 'a' and str2[i] <= 'z') or
(str2[i] >= 'A' and str2[i] <= 'Z')) == False):
return False
# this block of code will be executed
# if characters of both strings
# are of different cases
else:
# compare characters by ASCII value
if (str1[i] >= 'a' and str1[i] <= 'z'):
if (ord(str1[i]) - 32 != ord(str2[i])):
return False
elif (str1[i] >= 'A' and str1[i] <= 'Z'):
if (ord(str1[i]) + 32 != ord(str2[i])):
return False
# if characters matched,
# increase the value of i
# to compare next char
i += 1
# end of outer else block
# end of while loop
# if all characters of the first string
# are matched with corresponding
# characters of the second string,
# then return true
return True
# end of equalIgnoreCase function
# Function to print the same or not same
# if strings are equal or not equal
def equalIgnoreCaseUtil(str1, str2):
res = equalIgnoreCase(str1, str2)
if (res == True):
print("Same")
else:
print("Not Same")
# Driver Code
if __name__ == '__main__':
str1 = "Geeks"
str2 = "geeks"
equalIgnoreCaseUtil(str1, str2)
str1 = "Geek"
str2 = "geeksforgeeks"
equalIgnoreCaseUtil(str1, str2)
# This code is contributed by
# Surendra_Gangwar
C
using System;
class GFG
{
// Function to compare two strings
// ignoring their cases
static bool equalIgnoreCase(string str1, string str2)
{
int i = 0;
// length of first string
int len1 = str1.Length;
// length of second string
int len2 = str2.Length;
// if length is not same
// simply return false since both string
// can not be same if length is not equal
if (len1 != len2)
return false;
// loop to match one by one
// all characters of both string
while (i < len1)
{
// if current characters of both string are same,
// increase value of i to compare next character
if (str1[i] == str2[i])
{
i++;
}
// if any character of first string
// is some special character
// or numeric character and
// not same as corresponding character
// of second string then return false
else if (!((str1[i] >= 'a' && str1[i] <= 'z')
|| (str1[i] >= 'A' && str1[i] <= 'Z')))
{
return false;
}
// do the same for second string
else if (!((str2[i] >= 'a' && str2[i] <= 'z')
|| (str2[i] >= 'A' && str2[i] <= 'Z')))
{
return false;
}
// this block of code will be executed
// if characters of both strings
// are of different cases
else
{
// compare characters by ASCII value
if (str1[i] >= 'a' && str1[i] <= 'z')
{
if (str1[i] - 32 != str2[i])
return false;
}
else if (str1[i] >= 'A' && str1[i] <= 'Z')
{
if (str1[i] + 32 != str2[i])
return false;
}
// if characters matched,
// increase the value of i to compare next char
i++;
} // end of outer else block
} // end of while loop
// if all characters of the first string
// are matched with corresponding
// characters of the second string,
// then return true
return true;
} // end of equalIgnoreCase function
// Function to print the same or not same
// if strings are equal or not equal
static void equalIgnoreCaseUtil(string str1, string str2)
{
bool res = equalIgnoreCase(str1, str2);
if (res == true)
Console.WriteLine( "Same" );
else
Console.WriteLine( "Not Same" );
}
// Driver Code
public static void Main()
{
string str1, str2;
str1 = "Geeks";
str2 = "geeks";
equalIgnoreCaseUtil(str1, str2);
str1 = "Geek";
str2 = "geeksforgeeks";
equalIgnoreCaseUtil(str1, str2);
}
}
// This code is contributed by ihritik
java 描述语言
<script>
// Function to compare two strings
// ignoring their cases
function equalIgnoreCase(str1, str2)
{
let i = 0;
// length of first string
let len1 = str1.length;
// length of second string
let len2 = str2.length;
// if length is not same
// simply return false since both string
// can not be same if length is not equal
if (len1 != len2)
return false;
// loop to match one by one
// all characters of both string
while (i < len1)
{
// if current characters of both string are same,
// increase value of i to compare next character
if (str1[i] == str2[i])
{
i++;
}
// if any character of first string
// is some special character
// or numeric character and
// not same as corresponding character
// of second string then return false
else if (!((str1[i].charCodeAt() >= 'a'.charCodeAt() && str1[i].charCodeAt() <= 'z'.charCodeAt())
|| (str1[i].charCodeAt() >= 'A'.charCodeAt() && str1[i].charCodeAt() <= 'Z'.charCodeAt())))
{
return false;
}
// do the same for second string
else if (!((str2[i].charCodeAt() >= 'a'.charCodeAt() && str2[i].charCodeAt() <= 'z'.charCodeAt())
|| (str2[i].charCodeAt() >= 'A'.charCodeAt() && str2[i].charCodeAt() <= 'Z'.charCodeAt())))
{
return false;
}
// this block of code will be executed
// if characters of both strings
// are of different cases
else
{
// compare characters by ASCII value
if (str1[i].charCodeAt() >= 'a'.charCodeAt() && str1[i].charCodeAt() <= 'z'.charCodeAt())
{
if (str1[i].charCodeAt() - 32 != str2[i].charCodeAt())
return false;
}
else if (str1[i].charCodeAt() >= 'A'.charCodeAt() && str1[i].charCodeAt() <= 'Z'.charCodeAt())
{
if (str1[i].charCodeAt() + 32 != str2[i].charCodeAt())
return false;
}
// if characters matched,
// increase the value of i to compare next char
i++;
} // end of outer else block
} // end of while loop
// if all characters of the first string
// are matched with corresponding
// characters of the second string,
// then return true
return true;
} // end of equalIgnoreCase function
// Function to print the same or not same
// if strings are equal or not equal
function equalIgnoreCaseUtil(str1, str2)
{
let res = equalIgnoreCase(str1, str2);
if (res == true)
document.write( "Same" + "</br>");
else
document.write( "Not Same" + "</br>");
}
let str1, str2;
str1 = "Geeks";
str2 = "geeks";
equalIgnoreCaseUtil(str1, str2);
str1 = "Geek";
str2 = "geeksforgeeks";
equalIgnoreCaseUtil(str1, str2);
// This code is contributed by diveshrabadiya07.
</script>
Output:
Same
Not Same
版权属于:月萌API www.moonapi.com,转载请注明出处