2009-11-30 31 views
49

Son karakteri Scala'daki bir String'in sonundan kaldırmanın en basit yöntemi nedir?Dize Scala'nın Sonundaki Karakterleri Kaldır

Rubys String sınıfının pirzola gibi bazı çok yararlı yöntemleri olduğunu buluyorum. Scala'da "oddoneoutz" .headOption kullanırdım, ama amortismana uğrar. Ben aşırı karmaşık girmek istemiyorum:

string.slice(0, string.length - 1) 

birisi bu ortak bir şey için pirzola gibi güzel basit bir yöntem yoktur söyle.

cevap

97

Nasıl 2,8 çalışır dropRight, kullanma hakkında: - Eğer en verimli çözümü istiyorsanız "abc" üretir

"abc!".dropRight(1) 

+0

2.7 için gelebileceğim en çok şey "abc" (". $)" (0) –

+3

Oops "abc" demek istiyorum. Split (". $") (0) –

+0

Mükemmel Teşekkürler Don, 2.8'e yükseltmek zorundayım :) –

4
string.reverse.substring(1).reverse 

Bu temel olarak doğrayın, değil mi? Bir doğrayın yöntemi için özlem duyuyorsanız, neden kendi StringUtils kitaplığınızı yazıp uygun, daha genel bir yedek bulana kadar projelerinize dahil etmeyin?

Hey, bakın, ortak kullanımda.

Apache Commons StringUtils.

+3

Elbette Stefan. Kodu baktığınızda, ne olduğunu anladığınız bir yöntemi umuyordum :) Şunu söylüyorum: "string'ten son karakteri kaldırmak" gibi basit bir şey için reverse.substring (1). yanıltıcı. Yanıt için teşekkürler. –

+0

Artı Ters bir yöntem almak için dizeyi StringBuilder'a sarmanız gerekir. –

+2

İlk kısım çoğunlukla bir şaka idi: P. Scala'nıza bakan herhangi bir Java programcısı, StringUtils hakkında bilgi sahibi olmalı ya da en azından Apache Commons kütüphanesini, ithalatı görmek ve rahatsız edilmemek için bilmelidir. Avam faydalıdır ve mümkün olan yerlerde kullanılmalıdır. Çoğu projenin bir noktada müşterek anlaşmalar içerdiğini tespit ettim, bu yüzden kütüphaneyi kullanmanın genellikle maliyeti yok. StringUtils'i scala programlarınızda bir takma ad olarak bile kullanabilir ve sucku (str) olarak kullanabilirsiniz. –

7
val str = "Hello world!" 
str take (str.length - 1) mkString 
+0

+1, teşekkürler @Daniel Spiewak; bana "str drop (str.length -4)" yol açtı, kredi kartının son 4'ünü alır, sadece ihtiyacım olan ;-) – virtualeyes

11
string.init // padding for the minimum 15 characters 
+0

Teşekkürler Walter, Scala'nın sahip olacağını düşündüğüm yöntem bu. Yine tüm bu güzel metotlar sadece 2.8, yani buradan yükseliyorum :) –

1

sadece kullanmak daha:

str.substring(0, str.length - 1) 
İlgili konular