【问题标题】:representing strings with certain integers [duplicate]表示具有某些整数的字符串[重复]
【发布时间】:2014-07-31 10:56:39
【问题描述】:

我正在尝试创建一个从用户那里获取字符串并将其转换为整数的系统。我想要每个字母的整数表示,这样任何字符串都可以转换为整数。我尝试将字符串的每个字符放入一个数组中,然后逐个检查每个字母。这种方法变得很乱,所以我想知道是否还有更短的方法。

【问题讨论】:

  • String.hashCode()? (只是不要指望你想出的任何方案会产生一个唯一整数,除非你愿意使用BigInteger
  • 在你的情况下,一个字母的整数表示是多少?

标签: java string integer


【解决方案1】:

如果要将字符串转换为整数,可以尝试执行以下操作:

 int c = Integer.parseInt("Your String");

要将字母转换为字符串,您可以尝试以下操作:

String word = "abcd";
StringBuilder build = new StringBuilder();

for (char c : word.toCharArray()) {
    build.append((char)(c - 'a' + 1));
 }

所以基本上你减去找到字母的整数值。注意:这仅适用于全部小写的字符串。如果您有大写字母,则必须在应用上述内容之前将它们转换为小写。

【讨论】:

  • 不要忘记这个方法会抛出 NumberFormatException,所以语句必须包含在 try-catch 块中,否则该行所在的方法必须抛出 NumberFormatException。
  • 这会抛出异常。提问者的字符串包含字母。
【解决方案2】:

也许 Character 的 getNumericValue() 方法是你所追求的?你可以循环使用它。

【讨论】:

    【解决方案3】:

    我想要每个字母的整数表示

    • 使用String通过"yourString".toCharArray();获取字符数组
    • 使用 ForEach 循环获取每个字符的 int。

    for(char c:yourstring.trim().toCharArray())
    {
        int a=(int)c;
        arrayList.add(a); //store integers to arrayList or array as you wish
    }
    

    【讨论】:

    • 这几乎不会每次都是独一无二的......
    • @AnubianNoob OP 从未说过整数在任何时候都必须是唯一的
    • 我猜它有效,但请记住它不是唯一的。它也可能溢出。只是要记住的事情,这很好用。
    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多