如何在没有方法toUppercase的情况下获取大写而不是小写。下面的PS

问题描述 投票:-1回答:3

如何在不使用方法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';
            }


        }
    }
}
java methods char uppercase lowercase
3个回答
0
投票

您可以执行以下操作:

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以供参考。


0
投票
  • 小写字符a到z的ASCII值范围从97到122
  • 大写字符A到Z的ASCII值范围从65到92
  • 为了进行转换,我们从输入字符的ASCII值中加上32。

在if语句中添加此内容:

ch = ch + 32;


0
投票

假设这不是家庭作业,这是不使用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

© www.soinside.com 2019 - 2024. All rights reserved.