繁体   English   中英

Ruby String ASCII操作?

[英]Ruby String ASCII operation?

是否可以像在Cpp中一样在Ruby中执行一些ASCII选项?

char *s = "test string";
for(int i = 0 ; i < strlen(s) ; i++) printf("%c",s[i]);
// expected output: vguv"uvtkpi

如何在Ruby中实现类似的目标? 通过一些研究,我认为String.each_byte在这里可能会有所帮助,但是我正在考虑使用高级编程(例如Array.map )直接转换字符串,而不使用显式的for循环。

我要解决的任务:参考此页面 ,我正在尝试使用Ruby解决它,似乎需要逐字符转换才能应用于字符串。

密切注意Challenge中问题所给出的提示,然后使用String的tr方法:

"test string".tr('a-z', 'c-zab')
# => "vguv uvtkpi"

解决该问题的另一个提示是,您只应处理字符。 标点和空格应单独放置。

Python Challenge中对字符串使用上面的tr ,您将明白我的意思。

使用String#each_charString#ordInteger#chr

s = "test string"
s.each_char.map { |ch| (ch.ord + 2).chr }.join
# => "vguv\"uvtkpi"

String#each_byte

s.each_byte.map { |b| (b + 2).chr }.join
# => "vguv\"uvtkpi"

String#next

s.each_char.map { |ch| ch.next.next }.join
# => "vguv\"uvtkpi"

您可以使用代码点或each_codepoint方法,例如:

old_string = 'test something'
new_string = ''

old_string.each_codepoint {|x| new_string << (x+2).chr}

p new_string #=> "vguv\"uqogvjkpi"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM