下面是我用来从RubyString转换为Java Char的代码..请你建议我更好的方式Jruby(自动处理这些类型错误或jruby中的一些代码转换)
ruby_string="Raj"
java.lang.String.new(col_value)
col_value=str_obj.charAt(0)
答案 0 :(得分:7)
首先,JRuby的行为略有不同,具体取决于您是以1.8模式还是1.9模式运行它。使用JRuby 1.7.0及更高版本,默认值为1.9;与其他人一样,1.8是默认值。要更改默认设置,请在命令行上将--1.8
或--1.9
传递给jruby
。
在1.8模式下,对字符串的某些操作(如在单个索引处获取字符)返回数字(Fixnum
s),而在1.9模式下,它们总是返回字符串。 JRuby在0到65535之间的Ruby Fixnum
和Java char
之间自动转换,因此您可以将1.8模式“字符”值直接传递给接受字符的Java方法; e.g。
str = 'foo'
java_obj.methodThatTakesAChar(str[0])
在1.9模式下,由于str[0]
是单字符字符串,因此必须将其字符转换为数字。您可以使用ord
实例方法执行此操作:
str = 'foo'
java_obj.methodThatTakesAChar(str[0].ord)
我希望有所帮助。