2014-09-06 216 views
-5

使用将单个大写字母转换为小写字母的主要方法编写名为CaseConverter的程序。你必须声明一个char变量来保存小写字母。将大写字母转换为小写字母

public class CaseConverter { 
    public static void main (String [] args){ 

    int offset = 'a' - 'A'; 

    char temp = 'X'; // or any other uppercase alphabet 
    System.out.println("uppercase: " + temp); 

    // insert code here 

    System.out.println("lowercase: " + temp); 

    }  
} 
+0

我不明白 “偏移”。如何抵消和温度相关> – wewewe123 2014-09-06 09:24:12

+3

不知何故,我觉得包含的代码是由老师提供的。 – Kayaman 2014-09-06 09:30:30

+0

Unicode使用的Java字符集有1039个大写字符,其中27个没有对应的小写字符。编程的关键部分是避免不正确的假设。 – 2014-09-06 17:03:00

回答

0

大写字母的代码“A”是67和小写字母的代码为“a”是97。所以,在偏移量是32.因此,为了任何大写字母转换为小写字母你必须添加32即抵消它。 编辑:

public class CaseConverter{ 
    public static void main(String args[]){ 
     int offset = 'a' - 'A'; 
     int temp = 'X'; // or any other uppercase alphabet 
     System.out.println("uppercase: " + (char)temp); 
     temp = temp + offset; 
     System.out.println("lowercase: " + (char)temp); 
    } 
} 

编辑:由于您的临时数据类型为char,那么这将工作

public class CaseConverter{ 
    public static void main(String args[]){ 
     int offset = 'a' - 'A'; 
     char temp = 'X'; // or any other uppercase alphabet 
     System.out.println("uppercase: " + temp); 
     temp = (char)((int)temp + offset); 
     System.out.println("lowercase: " + temp); 
    } 
} 
+0

我的临时数据类型是char – wewewe123 2014-09-06 09:43:04

+0

非常感谢!你解决了我的问题! – wewewe123 2014-09-06 13:22:27

0

使用java字符类将大写字符转换为小写字符的静态方法:>Character.toLowerCase(c);

+0

令人惊讶的是,即使输入是大写字母,结果也不一定是小写字母!这是输入验证需要候选输出的场景。 – 2014-09-06 21:14:58

0

如果您查看ASCII table,可以轻松解答您的问题。当您编写a时,int变量将保存字符a的ASCII值。

P这个字母的ASCII值为例,它是80.你如何得到p的ASCII值是112?我不会给你完整的解决方案,但这应该会帮助你开始*

* 'a' - 'A'是32

0
import java.io.*; 

public CaseConverter{ 
    public static void main(String args[]){ 
    char temp = 'X'; // or any other uppercase alphabet 
    System.out.println("uppercase: " + temp); 
    System.out.println(temp.toUpperCase()); 
    } 
} 
0

偏移:在ASCII码 小写字母遵循由32位大写,因为我可以请记住,如果你有一个大写字母'X',那么你通过大写和小写字母之间的差异来得到它的整数值。

char ch = 'x'; //x is lower case letter int diff = (int)'a' - (int)'A'; //Difference between lower and upper ch = (int)ch - diff; //now you get the lower case

1

这可以用于壳体conersion

public char toLowercase(char c) { 
    int offset = 'a' - 'A'; 
    if (c >= 'A' && c <= 'Z') { 
     return (char) (c + offset); 
    } 
    return c; 
} 

public char toUppercase(char c) { 
    int offset = 'a' - 'A'; 
    if (c >= 'a' && c <= 'z') { 
     return (char) (c - offset); 
    } 
    return c; 
} 
相关问题