2016-03-23 14 views
-1

Bir dizeye \1 yazmayı deniyorum ama yapamıyorum. Biri bana bu garip davranışta yardım ederse memnun olurum. Here, bazı açıklamalarla birlikte bir örnektir.Dize içinde nasıl 1 yazılır

DÜZENLEME: Ekleme örnek çıktısı

puts "\1 <- null"

puts "\\1 <- slash one"

çalışır!

ancak irb, komut doğrultusunda "\1" "\\1"

yazarak

"\1"

=> "\u0001

"\\1"

verir

+2

Lütfen sorunuzun kodunu ve açıklamasını içerecek şekilde düzenleyin. Diğer sitelere olan bağlantılar kötü gitmeye eğilimlidir, bu soruyu ve gelecekteki ziyaretçilere daha az yararlı olabilecek her türlü cevabı verir. –

+0

Gerçekten mi * ters eğik çizgi * istiyormusunuz? – tadman

+0

Yığın Taşması'na Hoş Geldiniz. Lütfen "[sor]" ve "[mcve]" mesajlarını okuyun. Kodunuzu ve delil kanıtınızı soruyu kendi başınıza eklemenizi bekliyoruz, başka bir yerdeki bağlantıya değil. Linkler çürür, sonra kimseye bir anlam ifade etmeden sorularınızı bırakarak kırılır. –

cevap

5

bunu elde etmenin birkaç yolu vardır:

"\\1" 
'\1' 
?\\ + ?1 

o görünecektir yolu istediğini olan literal ters eğik çizgi, tek anlamına gelen hep "\\1" olduğunu unutmayın. Bu doğru olduğunu bilmek yolu puts kullanmaktır:

puts "\\1" 
# => \1 

Çift tırnaklı dizeleri içinde, ters eğik çizgi belirgin bir anlamı yoktur. \n, yeni satır karakteri anlamına gelir. Tek tırnaklı dizelerde, bu iki karakterdir: ters eğik çizgi ve n.

Hatta bu test edebilirsiniz:

"\\1".chars 
# => ["\\", "1"] 

'\1'.chars 
# => ["\\", "1"] 

Yani Yakut yorumluyor görebilirsiniz iki karakter değil, üç. Çift tırnaklı bir dizgede ikinci ters eğik çizgi tarafından aldanmayın. Bu bir tam ters bölü işareti temsil edilir.

+0

Cevabınız için teşekkürler! – mhz

+0

@mhz Eğer işe yararsa bana bildirin, eğer varsa, çözüm olarak kabul edin. Diğer insanların bu şekilde bulmasını kolaylaştırır. – tadman

0

Ben IRB ve tip \1 yaşıyorum, döndürülen değer karakterini temsil Ruby yoludur \u0001 olduğunu.

puts('\1 yazarken, davranış IRB'de ve bir komut dosyasını çalıştırırken aynıdır.

0 0 
0 1 

Bu, tüm platformlarda aynı çıkışı olmayacaktır şöyle bir unicode karakter haritasını görmek (o unicode nasıl gösterileceğini bağlıdır). Yani bu muhtemelen repl.it örneğinde hiç çıkış görmüyor.

2

puts '\1''u denediniz mi? (çift yerine tek tırnaklar) Sorduğumdan% 100 emin değilim ama bu yardımcı olur, şerefe.

2

Komut satırınızda "\ 1" gösteriliyor, çünkü irb, dizeden kaçan nesnede .inspect. Yani, esasen \ 1 düzgün bir şekilde saklanır, ancak görüntülendiğinde, bu durumun kaçtığını belirtmek için bir başka \ ekler: