How to Change a Char to Lowercase in Java
Convert characters of a string to opposite case
Given a string, convert the characters of the string into opposite case,i.e. if a character is lower case then convert it into upper case and vice-versa.
Examples:
Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the Demo Class for First Step to Coding Course,specificallydesigned for students of class 8 to 12.
The students will get to learn more about the world of programming in thesefree classes which will definitely help them in making a wise career choice in the future.
Input : geeksForgEeks Output : GEEKSfORGeEKS Input : hello every one Output : HELLO EVERY ONE
ASCII values of alphabets: A – Z = 65 to 90, a – z = 97 to 122
Steps:
- Take one string of any length and calculate its length.
- Scan string character by character and keep checking the index.
- If a character in an index is in lower case, then subtract 32 to convert it in upper case, else add 32 to convert it in lower case
- Print the final string.
C++
#include <iostream>
using
namespace
std;
void
convertOpposite(string& str)
{
int
ln = str.length();
for
(
int
i = 0; i < ln; i++) {
if
(str[i] >=
'a'
&& str[i] <=
'z'
)
str[i] = str[i] - 32;
else
if
(str[i] >=
'A'
&& str[i] <=
'Z'
)
str[i] = str[i] + 32;
}
}
int
main()
{
string str =
"GeEkSfOrGeEkS"
;
convertOpposite(str);
cout << str;
return
0;
}
Java
class
Test {
static
void
convertOpposite(StringBuffer str)
{
int
ln = str.length();
for
(
int
i =
0
; i < ln; i++) {
Character c = str.charAt(i);
if
(Character.isLowerCase(c))
str.replace(i, i +
1
,
Character.toUpperCase(c) +
""
);
else
str.replace(i, i +
1
,
Character.toLowerCase(c) +
""
);
}
}
public
static
void
main(String[] args)
{
StringBuffer str
=
new
StringBuffer(
"GeEkSfOrGeEkS"
);
convertOpposite(str);
System.out.println(str);
}
}
Python3
def
convertOpposite(
str
):
ln
=
len
(
str
)
for
i
in
range
(ln):
if
str
[i] >
=
'a'
and
str
[i] <
=
'z'
:
str
[i]
=
chr
(
ord
(
str
[i])
-
32
)
elif
str
[i] >
=
'A'
and
str
[i] <
=
'Z'
:
str
[i]
=
chr
(
ord
(
str
[i])
+
32
)
if
__name__
=
=
"__main__"
:
str
=
"GeEkSfOrGeEkS"
str
=
list
(
str
)
convertOpposite(
str
)
str
=
''.join(
str
)
print
(
str
)
C#
using
System;
using
System.Text;
class
GFG{
static
void
convertOpposite(StringBuilder str)
{
int
ln = str.Length;
for
(
int
i=0; i<ln; i++)
{
if
(str[i]>=
'a'
&& str[i]<=
'z'
)
str[i] = (
char
)(str[i] - 32);
else
if
(str[i]>=
'A'
&& str[i]<=
'Z'
)
str[i] = (
char
)(str[i] + 32);
}
}
public
static
void
Main()
{
StringBuilder str =
new
StringBuilder(
"GeEkSfOrGeEkS"
);
convertOpposite(str);
Console.WriteLine(str);
}
}
Javascript
<script>
function
convertOpposite(str)
{
var
ln = str.length;
for
(
var
i = 0; i < ln; i++)
{
if
(str[i] >=
'a'
&& str[i] <=
'z'
)
document.write(
String.fromCharCode(str.charCodeAt(i) - 32)
);
else
if
(str[i] >=
'A'
&& str[i] <=
'Z'
)
document.write(
String.fromCharCode(str.charCodeAt(i) + 32)
);
}
}
var
str =
"GeEkSfOrGeEkS"
;
convertOpposite(str);
</script>
Time Complexity: O(n)
Note: This program can alternatively be done using C++ inbuilt functions – Character.toLowerCase(char) and Character.toUpperCase(char).
Approach 2: The problem can be solved using letter case toggling. Follow the below steps to solve the problem:
- Traverse the given string S.
- For each character Si , do Si = S i ^ (1 << 5).
- S i ^ (1 << 5) toggles the 5th bit which means 97 will become 65 and 65 will become 97:
- 65 ^ 32 = 97
- 97 ^ 32 = 65
- Print the string after all operations
Below is the implementation of the above approach:
C++
#include<bits/stdc++.h>
using
namespace
std;
void
toggleChars(string &S)
{
for
(
auto
&it : S){
if
(
isalpha
(it)){
it ^= (1 << 5);
}
}
}
int
main()
{
string S =
"GeKf@rGeek$"
;
toggleChars(S);
cout <<
"String after toggle "
<< endl;
cout << S << endl;
return
0;
}
Java
import
java.util.*;
class
GFG{
static
char
[]S =
"GeKf@rGeek$"
.toCharArray();
static
void
toggleChars()
{
for
(
int
i =
0
; i < S.length; i++)
{
if
(Character.isAlphabetic(S[i]))
{
S[i] ^= (
1
<<
5
);
}
}
}
public
static
void
main(String[] args)
{
toggleChars();
System.out.print(
"String after toggle "
+
"\n"
);
System.out.print(String.valueOf(S));
}
}
C#
using
System;
class
GFG{
static
char
[]S =
"GeKf@rGeek$"
.ToCharArray();
static
void
toggleChars()
{
for
(
int
i = 0; i < S.Length; i++)
{
if
(
char
.IsLetter(S[i]))
{
S[i] = (
char
)((
int
)(S[i]) ^ (1 << 5));
}
}
}
public
static
void
Main(String[] args)
{
toggleChars();
Console.Write(
"String after toggle "
+
"\n"
);
Console.Write(String.Join(
""
, S));
}
}
This article is contributed by Rishabh Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
How to Change a Char to Lowercase in Java
Source: https://www.geeksforgeeks.org/convert-alternate-characters-string-upper-case/