5

Python 的字符串模块有一些方便的操作可以返回特定的字符集,比如所有的大写字符。Java有类似的东西吗?

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

string.ascii_lowercase

小写字母“abcdefghijklmnopqrstuvwxyz”。

string.ascii_uppercase

大写字母“ABCDEFGHIJKLMNOPQRSTUVWXYZ”。

string.digits

字符串“0123456789”。

string.punctuation

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

4

5 回答 5

3

不,您需要编写一个循环:

String result = "";
for (char c = 'A'; c <= 'Z'; c++) {
  result += c;
}
于 2013-10-26T23:42:14.587 回答
0

你可以只做 toLowerCase() 和 toUpperCase()

String abc = aBc;
abc.toLowerCase(); // abc
abc.toUpperCase(); // ABC

编辑:我误读了 OP。
OP 不想转换字符串,而是使用 Java 获取所有大写/小写字母、标点符号和数字的集合

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
}
于 2013-10-26T23:39:22.887 回答
0

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

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

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

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

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

  1. 获取“XYZ”的 JavaCharset对象。

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

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

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

我想这个过程(或类似的)是可以实现的,但我不知道有任何标准的 Java API 或 3rd 方 Java API 可以做到这一点。

于 2013-10-27T00:35:27.837 回答
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;
}

数字

public String numbers()
{
    String answer = "";
    int i;
    for (i=0;i<9;i++) 
    {
        answer += i;
    }
    return answer;
}
于 2013-10-26T23:47:19.700 回答
-3

试试这个方法 toUpperCase()。

于 2013-10-26T23:39:53.800 回答