2017-08-07 6 views
0

Ich arbeite an meiner Kotlin-App und erhalte eine Zeichenfolge mit dem ARN für einen S3-Bucket, aber ich brauche nur den Bucket-Namen.Kotlin .removeSurrounding funktioniert nicht, um aws zu entfernen ARN string

Der ARN kommt im Format: "arn: aws: s3 ::: $ NAME $/*".

Ich benutze die Kotlin .removeSurrounding -Funktion, um das anfängliche Arn-Tag und die Endung/* wegzuziehen, aber es scheint, dass die Funktion absolut nichts tut.

Hier ist der entsprechende Code.

EntityUtils.toString(httpGetRequest(***)!!.entity).removeSurrounding("arn:aws:s3:::","/*") 

Benutzt ich die Funktion nur falsch?

+2

Scheint wie Ihre tatsächliche Zeichenfolge hat andere Präfix oder Suffix. Siehe die [runnable demo] (https://try.kotlinlang.org/#/UserProjects/jrmfi6lvsohjpbt2mnh4i27bmv/sne6uiki43tfr2lbac4fpp4fod), wo die Funktion mit Ihrem Beispiel verwendet wird und ordnungsgemäß funktioniert. Wenn die Empfängerzeichenfolge nicht mit dem Präfix beginnt oder nicht mit dem Suffix endet, wird sie unverändert zurückgegeben, und dies scheint in Ihrem Fall zu geschehen. – hotkey

+0

Danke für die Antwort. Ich habe überprüft und es stimmt auf jeden Fall überein, das Ergebnis zu drucken gibt '=" arn: aws: s3 ::: $ name $/* "'. Selbst wenn man nur '.removePrefix (" arn: aws: s3 ::: ") benutzt, tut das nichts. – Lewiky

Antwort

0

Ich löste es, ich war dumm.

Aus irgendeinem Grund hatte das String-Literal selbst Anführungszeichen, so dass die Zeichenfolge "" arn: aws: s3 ::: $ name $/* "" war, musste ich auch die zusätzlichen Zitate strippen, daher die Zeichenfolge war nicht passend zum stripSurrounding

Verwandte Themen