Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么ruby中的字符串不在同一行中_Ruby_String - Fatal编程技术网

为什么ruby中的字符串不在同一行中

为什么ruby中的字符串不在同一行中,ruby,string,Ruby,String,在这段代码中,我在三个地方放置了put,其中第一个用字符串在不同的行中打印变量,第二个也一样。但第三个在同一行中给出 def calliee (name,game) #puts("#{name}#{game} he might be a bad guy") return " he might be a bad guy #{name}#{game}" end def mymethod(name) puts("enter your la

在这段代码中,我在三个地方放置了
put
,其中第一个用字符串在不同的行中打印变量,第二个也一样。但第三个在同一行中给出

def calliee (name,game)
        #puts("#{name}#{game} he might be a bad guy")
        return " he might be a bad guy #{name}#{game}"
    end
    def mymethod(name)
        puts("enter your last name")
        ss=gets()
        #return "#{name}"+"#{ss}"+"he might be a bad guy"
        calliee(name,ss)
    end
    puts("enter tour first name")
    tt=gets()
    #ww=mymethod(tt)
    yy=mymethod(tt)
    puts(yy)
    puts("#{tt} is 1st name")
    puts("prabhu "+"#{2+3}"+"#{4+5}")
我希望一切都在同一条线上,我需要知道为什么会发生这种情况。请帮助为您提供一个字符串,该字符串的末尾添加了
\n
。导致多行输出的原因


要使输出符合您的要求,您需要使用方法,如
gets.chomp

添加到Arup的答案中:


put
在输出的末尾添加一个换行符<代码>打印不打印。因此,您可能还希望将
put
替换为
print
,以便将所有输出都放在一行。

您需要将
yy
tt
中的换行符去掉,以便将其全部放在一行。查看获取输入时的说明。我想OP确实知道
#put
而不是
#get
:我的回答是。。“以防万一”…:p谢谢你的回答..但我也想要一个@Arup已经给出的理由。虽然你给了我另一个选项,所以u
put的+1不能简单地添加换行符。它在每个参数后写一个换行符(必要时将其转换为字符串),但前提是该参数尚未以换行符结尾。因此,
将“foo”、“bar\n”、“baz”
写入stdout中的
“foo\nbar\nbaz\n”
,产生3行。