内の文字の最後に出現を置き換え私は「(エスケープ二重引用符)で、最後の二重引用符()」を置き換えたいこの</p> <pre><code>"Position, fix, dial" </code></pre> <p>のような文字列を持っていた文字列
文字列の結果は
"Position, fix, dial\"
どのようにすることができますか?私は文字列の最初のオカレンスを置き換えることに気付いています。しかし
内の文字の最後に出現を置き換え私は「(エスケープ二重引用符)で、最後の二重引用符()」を置き換えたいこの</p> <pre><code>"Position, fix, dial" </code></pre> <p>のような文字列を持っていた文字列
文字列の結果は
"Position, fix, dial\"
どのようにすることができますか?私は文字列の最初のオカレンスを置き換えることに気付いています。しかし
String str = "\"Position, fix, dial\"";
int ind = str.lastIndexOf("\"");
if(ind>=0)
str = new StringBuilder(str).replace(ind, ind+1,"\\\"").toString();
System.out.println(str);
これは動作するはずの文字列の最後に出現交換する方法がわからない:
String replaceLast(String string, String substring, String replacement)
{
int index = string.lastIndexOf(substring);
if (index == -1)
return string;
return string.substring(0, index) + replacement
+ string.substring(index+substring.length());
}
をこの:
System.out.println(replaceLast("\"Position, fix, dial\"", "\"", "\\\""));
プリント:
"Position, fix, dial\"
Test。
一般的な目的のため、これは受け入れられた答えより優れています。 – demongolem
las文字がある場合にのみ削除する場合は、これは1行の方法です。私はディレクトリのためにこれを使用します。ただ尋ねる
localDir = (dir.endsWith("/")) ? dir.substring(0,dir.lastIndexOf("/")) : dir;
String docId = "918e07,454f_id,did";
StringBuffer buffer = new StringBuffer(docId);
docId = buffer.reverse().toString().replaceFirst(",",";");
docId = new StringBuffer(docId).reverse().toString();
これは、単一文字の場合にのみ機能します。 –
。なぜこれが好きではない? 'String str =" \ "位置、修正、ダイヤル\" "; str.replaceAll( "[\"] \\ Z "、" \ ""); System.out.println(str); ' – Dudeist
はい、** str = str.replaceAll(" [\ "] \\ Z"、 "\\\\\" ")**のようなものを使用できます。しかし、それは入力の終わりに最後の引用符を置き換えます。それは<** "Position、fix、dial"> **>にはうまくいかない。 – yavuzkavus
@Dudeistこれはずっと読みにくいからです。 – Patrick