Groovy > 文字列(String)の使い方

更新日 2016-03-05
広告

特定の文字を含むか判定

containsメソッドを使います。 以下は、文字列testが、スペースを含むか判定する例です。
  if (test.contains(" ")) {
    // do something...
  }

文字列の分割

splitメソッドを使うと、文字列をスペースで分割します。 以下は、文字列testをスペースで分割する例です。
  def tokens = test.split()
tokensは文字列の配列になります。

特定の文字を削除

minusメソッドを使うことで、特定の文字を削除できます。
  def modifiedStr = originalStr.minus("k")

文字列の一部を取得

getAtメソッドで範囲を指定することで、文字列の一部を取得できます。 例えば、ある文字列(origStr)の4文字目以降を取得するには、以下のようにします。
  def origStr = "12345678"
  def result = origStr.getAt(3..(origStr.size() - 1))
  println result // -> 45678

文字列のサイズをそろえる

padLeftメソッドを使うと、文字列の左側に任意の文字を追加して、サイズを統一できます。これで、例えば数字の桁数をそろえることができます。
 println "50".padLeft(3, '0') // '050'
 println "1".padLeft(3, '0') // '001'

色々な置換

全角スペースを、半角スペースに置換する。
def newText = originalText.replaceAll(/\u3000/, ' ')
文字列最初のスペースを削除する。
def newText = originalText.replaceAll(/^\s+/, '')
文字列最後のスペースを削除する。
def newText = originalText.replaceAll(/\s+$/, '')
連続するスペースを、1つのスペースに置換する。
def newText = originalText.replaceAll(/ {2,}/, ' ')
置換対象の文字列を変数に格納し、それを使って置換文字列を作る。 以下は、'XXX'の前後にハイフンを入れるように置換します。
def text = "aaaXXXbbb"
// 配列itに、置換対象文字列が格納される。
def text2 = text.replaceAll(/(XXX)/){'-' + it[1] + '-'}
println text2

文字列を一行ずつ処理

文字列の変数が、複数の行を含む場合に、一行ずつ処理する方法です。
 text.eachLine { line, no ->
   println "${no} ${line}"
 }
上記の変数noは、行番号です。0始まりです。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system