如何在不使用方法toUppercase的情况下获取大写而不是小写,但是字符串中的其他符号不应更改
package com.telukhin.hw6;
public class Task1 {
public static void main(String[] args) {
} private static String lowerCase(String s) {
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if(ch >= 'a' && ch < 'z') {
ch = ch - '32';
}
}
}
}
您可以执行以下操作:
public class Task1 {
public static void main(String[] args) {
System.out.println(lowerCase("HELLO"));
}
private static String lowerCase(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch >= 65 && ch <= 90)
sb.append((char)(ch+32));
else
sb.append((char)ch);
}
return sb.toString();
}
}
输出:
hello
请检查https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html以供参考。
在if语句中添加此内容:
ch = ch + 32;
假设这不是家庭作业,这是不使用toUppercase的限制,您可以这样做:
public class Main
{
public static void main(String[] argv)
{
final String upper = toUpperCase("[email protected]");
System.out.println(upper);
}
private static String toUpperCase(final String s)
{
final StringBuilder builder = new StringBuilder();
for(final char c : s.toCharArray())
{
final char upper = Character.toUpperCase(c);
builder.append(upper);
}
return builder.toString();
}
}
这将处理非ASCII字符。或者,您仍然可以使用65和90位代替Character.toUpperCase