2

下面是我用来从 RubyString 转换为 Java Char 的代码。你能否建议我在 Jruby 中使用更好的方法(自动处理这些类型错误或 jruby 中的一些代码进行转换)

ruby_string="Raj"

java.lang.String.new(col_value)
col_value=str_obj.charAt(0)
4

1 回答 1

7

首先,JRuby 的行为略有不同,具体取决于您是在 1.8 模式还是 1.9 模式下运行它。对于 JRuby 1.7.0 及更高版本,1.9 是默认值;与其他人一样,1.8 是默认值。要更改默认值,请在命令行上传递--1.8或传递--1.9给。jruby

在 1.8 模式下,对字符串的某些操作,例如在单个索引处获取字符,返回数字 ( Fixnums),而在 1.9 模式下,它们总是返回字符串。FixnumJRuby在 0 到 65535之间的 Ruby 和 Java 之间自动转换char,因此您可以将 1.8 模式的“字符”值直接传递给接受字符的 Java 方法;例如

str = 'foo'
java_obj.methodThatTakesAChar(str[0])

在 1.9 模式下,由于str[0]是单字符的字符串,所以必须将其字符转换为数字。您可以使用ord实例方法执行此操作:

str = 'foo'
java_obj.methodThatTakesAChar(str[0].ord)

我希望这会有所帮助。

于 2012-10-25T22:43:31.530 回答