【问题标题】:Convert String of words/letters into an Integer将单词/字母字符串转换为整数
【发布时间】:2015-01-03 12:57:18
【问题描述】:

今天我终于决定创建一个帐户,希望对我过去几个小时一直在寻找的问题有所帮助。 (过去几个小时我一直在寻找回复,从 Google 到此处再到 Unity Answers。Here's everything that I've found so far, which doesn't work.


我正在寻找的是将一串纯单词/字母更改为整数。因此,“Hello World”将相应地翻译成一串数字。这可能令人惊讶,但这比听起来要困难得多。到目前为止,我已经找到了一种基本上可以做所有事情的方法。

可能最好的方法是获取字符串中每个字母的 ASCII 值,并将它们全部放在一个整数中。 (没有序列或需要将它们分开,但只有一个数字。)但是,我不知道从哪里开始或如何做到这一点。真的任何你认为可行的东西,最好是尽可能简短和不麻烦。

为了尽可能清楚,我需要将仅包含字母的变量“example”转换为整数/仅是数字序列。

【问题讨论】:

  • 数字的顺序应该是什么?如果您想从数字返回到字符串,除非您创建一个 ASCII 值数组,否则这将不起作用。这样做的目的是什么?在JS中,获取一个字符的ASCII值就像"n".charCodeAt(0)一样简单
  • OP 可能想要编辑标签。
  • 很抱歉,但除非我大错特错;这适用于 JavaScript,而不是 Java。确切地说,Unity 中的 JavaScript。此外,这些数字意味着在一个单一的序列中。一个整数。
  • @Brennan 我不能使用 charCodeAt,因为它仅限于翻译 unicode 中的单个字符。我需要将一整串单词/字母翻译成一个整数。 (对不起,我会编辑我上面的评论,但它不会让我。)
  • 是的,因此您将遍历字符串中的每个字符,在每个位置获取 charCode,并将 charcode 附加到字符串。但是,你为什么要这样做?听起来有点邪恶。你对这是 Javascript 是正确的,我读错了你的代码。但为了清楚起见:var int_string = ""; for (var i = 0; i < string.length; i++); int_string+=string.charCodeAt(i); 会给你一个字符串,其中包含你正在翻译的字符串的所有 ascii 代码。

标签: string unity3d integer converter unityscript


【解决方案1】:

您可以遍历所有字符,获取它们的 charCode 并将它们链接在一起。第一种方法将字符串拆分为单个字符并使用 Array.reduce:

var str = 'qwertzuiop';
var num = parseInt(str.split('').reduce(function(a, b) {return a + b.charCodeAt(0);}, '');

第二个在字符串上调用 Array.forEach,因为它有数字索引和长度属性。

var num = ''; [].forEach.call(str, function(c) {num += c.charCodeAt(0);});
    num = parseInt(num);

在陈旧的浏览器中,您必须改用for-loops

【讨论】:

    【解决方案2】:

    如果您只是想将任意字符串转换为随机种子,那么为什么不试试randomSeed.GetHashCode()?这将返回一个适合设置种子的int 值,每次输入相同的字符串时都会产生相同的数字。

    【讨论】:

    • 对于我正在寻找的东西来说,这是一个更好、更简单的解决方案。最棒的是,当我将 UnityScript/JavaScript 项目切换到 C# 时,它不需要任何调整。非常感谢。
    猜你喜欢
    • 2010-10-02
    • 2013-02-08
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多