2017-12-24 26 views
0

がどのようにこのような文字列を削除する文字列から複数の単語を削除します***の痛みはひどく見えます。誰かがより良いソリューション/オプションを持っているかどうか疑問に思うだけです。それは作品/Javaのストリップ/

String itemStackStringName = "ItemStack{DIAMOND_HELMET x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, display-name=PRO, repair-cost=1}}"; 
    String getItemStacks = itemStackStringName.replace("ItemStack","") 
      .replace("{","").replace("}", "").replace("UNSPECIFIC_META:", "") 
      .replace("display-name", "").replace("=","") 
      .replace("meta-type", "").replace("repair-cost1", "") 
      .replace("x", "").replace(",",""); 

    System.out.println(getItemStacks); 
    "DIAMOND_HELMET 1 UNSPECIFIC PRO" 

が、そのちょうど巨大な混乱:申し訳ありませんが は自分のコードを追加するのを忘れ。あなたはそれがあなたの文字列があることを行っているタイプであることを知っている場合は

+1

あなたの質問と例から、単語を抽出するために使用することができ、パターンを導出することは困難です。あなたの質問を改善してください。 –

+0

Regexはおそらくあなたの親友です。しかし、あなたの試みたコードなしでは、適切なソリューションを提供することは困難です。 – arkdevelopment

+1

@ dasblinkenlightコードが追加されました – Shnatta

答えて

1

、あなたは先に行くと、このような何かを行うことができます。

String arr[] = a.split("\\{");//you get an array of 3 strings 
String someFinalString = arr[1].split("x")[0].trim();//you get "DIAMOND_HELMET" 
someFinalString += arr[1].split("x")[1].split(",")[0]; 
arr = arr[2].split("\\=");//you get an array of 4 strings 
someFinalString += " " + arr[1].split(",")[0] + " " + arr[2].split(",")[0]; 

を将来的にはあなたがしようとしたものを投稿してください。このようなものを分割することは、常にひどく見えます。後で簡潔にすることができます。

ただ、証拠この作品(と私は推測小文字を取得する方法を自分で把握することができます):DrJava for simplicity

+0

文字列arr [] = a.split( "\\ {");これはまさに何をするのでしょうか? – Shnatta

+0

文字列arr []はNULL文字列配列を作成します。 a.split( "\\ {")はaを文字で区切った文字列に分割します(ここでは{)です)。角括弧、等号とjavaで使われている他の特殊文字の場合は、{od =と同じように( "\\ SPECIALCHAR")を使用する必要がありますが、コンマ( "、 ")を使用する必要はありません" \\ "。 「ItemStack」 : だから、基本的に、それはこのように見えた3つの文字列にあなたの文字列を分割「DIAMOND_HELMET×1、UNSPECIFIC_META:」 「メタ型=非特異、表示名= PRO、修理コスト= 1 }} "" だから、元のStringは{、によって3に分けられました。 – SkyAnthrax94

+0

ああ、ありがとう:) – Shnatta

関連する問題