Java是否具有Python的“string.ascii_uppercase”的等价物?

时间:2013-10-26 23:36:46

标签: java

Python的字符串模块有一些方便的操作,它们将返回某些字符集,例如所有大写字符。 Java有什么类似的东西吗?

http://docs.python.org/2/library/string.html

string.ascii_lowercase

小写字母'abcdefghijklmnopqrstuvwxyz'。

string.ascii_uppercase

大写字母'ABCDEFGHIJKLMNOPQRSTUVWXYZ'。

string.digits

字符串'0123456789'。

string.punctuation

ASCII字符的字符串,在C语言环境中被视为标点字符。

5 个答案:

答案 0 :(得分:3)

没有。你需要写一个循环:

String result = "";
for (char c = 'A'; c <= 'Z'; c++) {
  result += c;
}

答案 1 :(得分:0)

您可以执行toLowerCase()和toUpperCase()

String abc = aBc;
abc.toLowerCase(); // abc
abc.toUpperCase(); // ABC
编辑:我误读了OP OP不想转换字符串,而是使用Java获取所有上/下框,Punctiation和Numbers的集合

public static char[] getUpper() {
    char[] res = new char[26];
    for(int i = 0; i <= 26; i++) {
        res[i] = 'A' + i;
    }
    return res;
}

// Or just do getUpper().toLowerCase();
public static char[] getUpper() {
    char[] res = new char[26];
    for(int i = 0; i <= 26; i++) {
        res[i] = 'a' + i;
    }
    return res;
}

public static char[] getUpper() {
    char[] res = new char[10];
    for(int i = 0; i <= 10; i++) {
        res[i] = '0' + i;
    }
    return res;
}

对于标点符号我真的不知道

你可以使用一些直接返回的方法,因为你知道输出应该是什么。

public static String getUpper() {
    return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
}

public static String getLower() {
    return "abcdefghijklmnopqrstuvwxyz"
}

public static String getDigits() {
    return "0123456789"
}

public static String getPunctuation() {
    return ".," // Don't really know what this should return
}

答案 2 :(得分:0)

您可以创建自己的

大写

public String uppercase()
{
    String answer = "";
    char c;
    for (c = 'A'; c <= 'Z'; c++) 
    {
        answer += c;
    }
    return answer;
}

小写

public String lowercase()
{
    String answer = "";
    char c;
    for (c = 'a'; c <= 'z'; c++) 
    {
        answer += c;
    }
    return answer;
}

NUMBERS

public String numbers()
{
    String answer = "";
    int i;
    for (i=0;i<9;i++) 
    {
        answer += i;
    }
    return answer;
}

答案 3 :(得分:0)

我认为简单的答案是没有直接的等价物。

显然,如果您只想要(例如)ASCII中的所有大写字母,那么实现它是一项微不足道的任务。 Java没有在标准API中实现它。我想那是因为:

  • 实现自己是微不足道的,
  • 他们不希望API混淆编码和解码字符之间的区别,
  • 他们不想鼓励硬连线使用特定字符集/编码的代码。

Java的内部字符表示是基于Unicode的。 Unicode本质上是来自许多语言和书写系统的字符代码点的目录。有一个子系统用于在Java的基于Unicode的内部文本表示与外部字符编码(如ASCII,LATIN-1 ...和UTF-8)之间进行映射。其中一些支持所有Unicode代码点,而另一些则不支持。

因此,如果您想要一个通用解决方案来解决“在某些字符集XYX中找到所有大写字母”的问题,那么您需要执行以下操作:

  1. 获取“XYZ”的Java Charset对象。

  2. 枚举字符集“XYZ”中的所有有效字符。

  3. 获取字符集的CharsetDecoder对象,并使用它将每个有效字符解码为Unicode代码点。

  4. 使用Java Character类来测试代码点的Unicode属性;例如是否是“信件”,是否是“大写”等。 (使用Character.getType(codepoint)

  5. 我想这个程序(或类似程序)是可实现的,但我不知道有任何标准的Java API或第三方Java API。

答案 4 :(得分:-3)

尝试使用此方法toUpperCase()。