public abstract class StringUtils extends ObjectSE
StringSE ユーティリティメソッド。 主にフレームワーク内での内部使用。String ユーティリティのより包括的なスイートについては、Apache の Commons Lang を検討してください。
このクラスは、コア Java StringSE および StringBuilderSE クラスによって実際に提供されるべきいくつかの単純な機能を提供します。また、CSV 文字列などの区切り文字列とコレクションおよび配列の間で変換する使いやすいメソッドも提供します。
| コンストラクターと説明 |
|---|
StringUtils() |
| 修飾子と型 | メソッドと説明 |
|---|---|
static StringSE[] | addStringToArray(StringSE[] array, StringSE str) 指定された String を指定された String 配列に追加し、入力配列の内容と指定された String で構成される新しい配列を返します。 |
static StringSE | applyRelativePath(StringSE path, StringSE relativePath) 標準の Java フォルダー分離(つまり |
static StringSE | arrayToCommaDelimitedString(ObjectSE[] arr)String 配列をコンマ区切りの String (つまり、CSV)に変換します。 |
static StringSE | arrayToDelimitedString(ObjectSE[] arr, StringSE delim)String 配列を区切られた String に変換します(例: |
static StringSE | capitalize(StringSE str)Character.toUpperCase(char)SE に従って、最初の文字を大文字に変更して、String を大文字にします。 |
static StringSE | cleanPath(StringSE path) "path/.." などのシーケンスと内部の単純なドットを抑制して、パスを正規化します。 |
static StringSE | collectionToCommaDelimitedString(CollectionSE<?> coll)Collection を区切り文字付き String (CSV など)に変換します。 |
static StringSE | collectionToDelimitedString(CollectionSE<?> coll, StringSE delim)Collection を区切られた String に変換します(例: |
static StringSE | collectionToDelimitedString(CollectionSE<?> coll, StringSE delim, StringSE prefix, StringSE suffix)CollectionSE を区切られた String に変換します(例: |
static SetSE<StringSE> | commaDelimitedListToSet(StringSE str) コンマ区切りリスト(CSV ファイルの行など)をセットに変換します。 |
static StringSE[] | commaDelimitedListToStringArray(StringSE str) コンマ区切りリスト(CSV ファイルの行など)を文字列の配列に変換します。 |
static StringSE[] | concatenateStringArrays(StringSE[] array1, StringSE[] array2) 指定された String 配列を 1 つに連結し、重複する配列要素を 2 回含めます。 |
static boolean | containsWhitespace(CharSequenceSE str) 指定された CharSequence に空白文字が含まれているかどうかを確認します。 |
static boolean | containsWhitespace(StringSE str) 指定された String に空白文字が含まれているかどうかを確認します。 |
static int | countOccurrencesOf(StringSE str, StringSE sub) ストリング str 内のサブストリング sub の出現をカウントします。 |
static StringSE | delete(StringSE inString, StringSE pattern) 指定された部分文字列のすべての出現を削除します。 |
static StringSE | deleteAny(StringSE inString, StringSE charsToDelete) 指定された String の任意の文字を削除します。 |
static StringSE[] | delimitedListToStringArray(StringSE str, StringSE delimiter) 区切りリストである String を取得し、String 配列に変換します。 |
static StringSE[] | delimitedListToStringArray(StringSE str, StringSE delimiter, StringSE charsToDelete) 区切りリストである String を取得し、String 配列に変換します。 |
static boolean | endsWithIgnoreCase(StringSE str, StringSE suffix) 大文字 / 小文字を無視して、指定された String が指定されたサフィックスで終わるかどうかをテストします。 |
static StringSE | getFilename(StringSE path) 指定された Java リソースパスからファイル名を抽出します。 |
static StringSE | getFilenameExtension(StringSE path) 指定された Java リソースパスからファイル名拡張子を抽出します。 |
static boolean | hasLength(CharSequenceSE str) 指定された CharSequence が null でも長さ 0 でもないことを確認します。 |
static boolean | hasLength(StringSE str) 指定された String が null でも長さ 0 でもないことを確認します。 |
static boolean | hasText(CharSequenceSE str) 指定された CharSequence に実際のテキストが含まれているかどうかを確認します。 |
static boolean | hasText(StringSE str) 指定された String に実際のテキストが含まれているかどうかを確認します。 |
static boolean | isEmpty(ObjectSE str) 指定された String が空かどうかを確認します。 |
static StringSE[] | mergeStringArrays(StringSE[] array1, StringSE[] array2) 指定された String 配列を 1 つにマージします。重複する配列要素は 1 回だけ含まれます。 |
static LocaleSE | parseLocaleString(StringSE localeString) 指定された localeString 値を LocaleSE に解析します。 |
static TimeZoneSE | parseTimeZoneString(StringSE timeZoneString) 指定された timeZoneString 値を TimeZoneSE に解析します。 |
static boolean | pathEquals(StringSE path1, StringSE path2) それらを正規化した後、2 つのパスを比較します。 |
static StringSE | quote(StringSE str) 指定された String を単一引用符で引用します。 |
static ObjectSE | quoteIfString(ObjectSE obj) 指定されたオブジェクトが String の場合、単一引用符で String に変換します。オブジェクトをそのまま保持します。 |
static StringSE[] | removeDuplicateStrings(StringSE[] array) 指定された配列から重複した文字列を削除します。 |
static StringSE | replace(StringSE inString, StringSE oldPattern, StringSE newPattern) 文字列内のすべての部分文字列を別の文字列で置き換えます。 |
static StringSE[] | sortStringArray(StringSE[] array) 指定されたソース String 配列をソート済み配列に変換します。 |
static StringSE[] | split(StringSE toSplit, StringSE delimiter)String を区切り文字が最初に現れる位置で分割します。 |
static PropertiesSE | splitArrayElementsIntoProperties(StringSE[] array, StringSE delimiter) 文字列の配列を取得し、指定された区切り文字に基づいて各要素を分割します。 |
static PropertiesSE | splitArrayElementsIntoProperties(StringSE[] array, StringSE delimiter, StringSE charsToDelete) 文字列の配列を取得し、指定された区切り文字に基づいて各要素を分割します。 |
static boolean | startsWithIgnoreCase(StringSE str, StringSE prefix) 指定された String が大文字と小文字を無視して、指定されたプレフィックスで始まるかどうかをテストします。 |
static StringSE | stripFilenameExtension(StringSE path) 指定された Java リソースパスからファイル名拡張子を削除します。 |
static boolean | substringMatch(CharSequenceSE str, int index, CharSequenceSE substring) 指定された文字列が、指定されたインデックスで指定された部分文字列と一致するかどうかをテストします。 |
static StringSE[] | tokenizeToStringArray(StringSE str, StringSE delimiters) |
static StringSE[] | tokenizeToStringArray(StringSE str, StringSE delimiters, boolean trimTokens, boolean ignoreEmptyTokens) |
static StringSE | toLanguageTag(LocaleSE locale)HTTP "Accept-Language" ヘッダーに使用される RFC 3066 準拠の言語タグを決定します。 |
static StringSE[] | toStringArray(CollectionSE<StringSE> collection) 指定された Collection を String 配列にコピーします。 |
static StringSE[] | toStringArray(EnumerationSE<StringSE> enumeration) 指定された列挙を String 配列にコピーします。 |
static StringSE | trimAllWhitespace(StringSE str) 指定された String のすべての空白を削除します。先頭、末尾、文字間。 |
static StringSE[] | trimArrayElements(StringSE[] array) 指定された String 配列の要素をトリミングし、各要素で String.trim() を呼び出します。 |
static StringSE | trimLeadingCharacter(StringSE str, char leadingCharacter) 指定された String から指定された先頭文字のすべての出現を切り取ります。 |
static StringSE | trimLeadingWhitespace(StringSE str) 指定された String から先頭の空白を削除します。 |
static StringSE | trimTrailingCharacter(StringSE str, char trailingCharacter) 指定された String から指定された末尾文字のすべての出現を切り取ります。 |
static StringSE | trimTrailingWhitespace(StringSE str) 指定された String から末尾の空白を削除します。 |
static StringSE | trimWhitespace(StringSE str) 指定された String から先頭および末尾の空白を削除します。 |
static StringSE | uncapitalize(StringSE str)String の大文字を解除し、Character.toLowerCase(char)SE に従って最初の文字を小文字に変更します。 |
static StringSE | unqualify(StringSE qualifiedName) "." で修飾された文字列を修飾解除します。ドット文字。 |
static StringSE | unqualify(StringSE qualifiedName, char separator) 区切り文字で修飾された文字列を修飾解除します。 |
static StringSE | uriDecode(StringSE source, CharsetSE charset) 指定されたエンコードされた URI コンポーネント値をデコードします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static boolean isEmpty(@Nullable ObjectSE str)
String が空かどうかを確認します。 このメソッドは任意のオブジェクトを引数として受け入れ、null および空の文字列と比較します。結果として、このメソッドは null 以外の非 String オブジェクトに対して true を決して返しません。
オブジェクト署名は、一般に文字列を処理する一般的な属性処理コードに役立ちますが、属性はたとえばプリミティブ値オブジェクトでもあります。
str - 候補文字列 public static boolean hasLength(@Nullable CharSequenceSE str)
CharSequence が null でも長さ 0 でもないことを確認します。 メモ: このメソッドは、純粋に空白のみで構成される CharSequence に対して true を返します。
StringUtils.hasLength(null) = false
StringUtils.hasLength("") = false
StringUtils.hasLength(" ") = true
StringUtils.hasLength("Hello") = true
str - チェックする CharSequence (null の場合があります)CharSequence が null ではなく、長さがある場合は true hasText(String)public static boolean hasLength(@Nullable StringSE str)
String が null でも長さ 0 でもないことを確認します。 メモ: このメソッドは、純粋に空白のみで構成される String に対して true を返します。
str - チェックする String (null の場合があります)String が null ではなく、長さがある場合は true hasLength(CharSequence), hasText(String)public static boolean hasText(@Nullable CharSequenceSE str)
CharSequence に実際のテキストが含まれているかどうかを確認します。 より具体的には、このメソッドは、CharSequence が null ではなく、その長さが 0 より大きく、少なくとも 1 つの非空白文字を含む場合、true を返します。
StringUtils.hasText(null) = false
StringUtils.hasText("") = false
StringUtils.hasText(" ") = false
StringUtils.hasText("12345") = true
StringUtils.hasText(" 12345 ") = true
str - チェックする CharSequence (null の場合があります)true は、CharSequence が null ではなく、その長さが 0 より大きく、空白のみが含まれていない場合 Character.isWhitespace(char)SEpublic static boolean hasText(@Nullable StringSE str)
String に実際のテキストが含まれているかどうかを確認します。 より具体的には、このメソッドは、String が null ではなく、その長さが 0 より大きく、少なくとも 1 つの非空白文字を含む場合、true を返します。
str - チェックする String (null の場合があります)true は、String が null ではなく、その長さが 0 より大きく、空白のみが含まれていない場合 hasText(CharSequence)public static boolean containsWhitespace(@Nullable CharSequenceSE str)
CharSequence に空白文字が含まれているかどうかを確認します。str - チェックする CharSequence (null の場合があります)CharSequence が空ではなく、少なくとも 1 つの空白文字が含まれている場合は true Character.isWhitespace(char)SEpublic static boolean containsWhitespace(@Nullable StringSE str)
String に空白文字が含まれているかどうかを確認します。str - チェックする String (null の場合があります)String が空ではなく、少なくとも 1 つの空白文字が含まれている場合は true containsWhitespace(CharSequence)public static StringSE trimWhitespace(StringSE str)
String から先頭および末尾の空白を削除します。str - チェックする String StringCharacter.isWhitespace(char)SEpublic static StringSE trimAllWhitespace(StringSE str)
String のすべての空白を削除します。先頭、末尾、文字間。str - チェックする String StringCharacter.isWhitespace(char)SEpublic static StringSE trimLeadingWhitespace(StringSE str)
String から先頭の空白を削除します。str - チェックする String StringCharacter.isWhitespace(char)SEpublic static StringSE trimTrailingWhitespace(StringSE str)
String から末尾の空白を削除します。str - チェックする String StringCharacter.isWhitespace(char)SEpublic static StringSE trimLeadingCharacter(StringSE str, char leadingCharacter)
String から指定された先頭文字のすべての出現を切り取ります。str - チェックする String leadingCharacter - トリミングされる主人公 Stringpublic static StringSE trimTrailingCharacter(StringSE str, char trailingCharacter)
String から指定された末尾文字のすべての出現を切り取ります。str - チェックする String trailingCharacter - トリミングされる末尾の文字 Stringpublic static boolean startsWithIgnoreCase(@Nullable StringSE str, @Nullable StringSE prefix)
String が大文字と小文字を無視して、指定されたプレフィックスで始まるかどうかをテストします。str - チェックする String prefix - 検索するプレフィックス String.startsWith(java.lang.String, int)SEpublic static boolean endsWithIgnoreCase(@Nullable StringSE str, @Nullable StringSE suffix)
String が指定されたサフィックスで終わるかどうかをテストします。str - チェックする String suffix - 検索する接尾辞 String.endsWith(java.lang.String)SEpublic static boolean substringMatch(CharSequenceSE str, int index, CharSequenceSE substring)
str - 元の文字列 (または StringBuilder)index - 照合を開始する元の文字列のインデックス substring - 指定されたインデックスで一致する部分文字列 public static int countOccurrencesOf(StringSE str, StringSE sub)
str 内のサブストリング sub の出現をカウントします。str - 検索する文字列 sub - 検索する文字列 public static StringSE replace(StringSE inString, StringSE oldPattern, @Nullable StringSE newPattern)
inString - 調べる String oldPattern - 交換する String newPattern - 挿入する String String public static StringSE delete(StringSE inString, StringSE pattern)
inString - 元の Stringpattern - すべての出現を削除するパターン Stringpublic static StringSE deleteAny(StringSE inString, @Nullable StringSE charsToDelete)
String の任意の文字を削除します。inString - 元の StringcharsToDelete - 削除する文字のセット。例: "az\n" は、"a"、"z"、改行を削除します。String@Nullable public static StringSE quote(@Nullable StringSE str)
String を単一引用符で引用します。str - 入力 String (例: "myString" )String (例: "'myString' ")、または入力が null の場合は null @Nullable public static ObjectSE quoteIfString(@Nullable ObjectSE obj)
String の場合、単一引用符で String に変換します。オブジェクトをそのまま保持します。obj - 入力オブジェクト (例: "myString" )String (例: "'myString' ")、または String でない場合は入力オブジェクトをそのまま public static StringSE unqualify(StringSE qualifiedName)
qualifiedName - 修飾名 public static StringSE unqualify(StringSE qualifiedName, char separator)
qualifiedName - 修飾名 separator - セパレータ public static StringSE capitalize(StringSE str)
Character.toUpperCase(char)SE に従って、最初の文字を大文字に変更して、String を大文字にします。他の文字は変更されません。str - 大文字にする String Stringpublic static StringSE uncapitalize(StringSE str)
String の大文字を解除し、Character.toLowerCase(char)SE に従って最初の文字を小文字に変更します。他の文字は変更されません。str - 資本化を解除する String String@Nullable public static StringSE getFilename(@Nullable StringSE path)
"mypath/myfile.txt" -> "myfile.txt"path - ファイルパス (null の場合があります)null @Nullable public static StringSE getFilenameExtension(@Nullable StringSE path)
path - ファイルパス (null の場合があります)null public static StringSE stripFilenameExtension(StringSE path)
path - ファイルパス public static StringSE applyRelativePath(StringSE path, StringSE relativePath)
path - 開始するパス (通常、フルファイルパス)relativePath - 適用する相対パス (上記のフルファイルパスに関連)public static StringSE cleanPath(StringSE path)
結果はパス比較に便利です。他の用途では、Windows の区切り文字( "\" )が単純なスラッシュに置き換えられることに注意してください。
path - 元のパス public static boolean pathEquals(StringSE path1, StringSE path2)
path1 - 比較のための最初のパス path2 - 比較のための 2 番目のパス public static StringSE uriDecode(StringSE source, CharsetSE charset)
"a" から "z"、"A" から "Z"、"0" から "9" は同じままです。"-"、"_"、"."、"*" は同じままです。%<i>xy</i>" は、文字の 16 進表現として解釈されます。source - エンコードされた文字列 charset - 文字セット IllegalArgumentExceptionSE - 指定されたソースに無効なエンコードされたシーケンスが含まれている場合 URLDecoder.decode(String, String)SE@Nullable public static LocaleSE parseLocaleString(StringSE localeString)
localeString - ロケール String、Locale's toString() 形式("en"、"en_UK" など)に従います。アンダースコアの代わりに、区切り文字としてスペースも使用できます Locale インスタンス、または存在しない場合は null IllegalArgumentExceptionSE - 無効なロケール指定の場合 public static StringSE toLanguageTag(LocaleSE locale)
locale - 言語タグに変換するロケール String としての RFC 3066 準拠の言語タグ public static TimeZoneSE parseTimeZoneString(StringSE timeZoneString)
timeZoneString 値を TimeZoneSE に解析します。timeZoneString - TimeZone.getTimeZone(String)SE の後にタイムゾーン String が、タイムゾーンの指定が無効な場合に IllegalArgumentExceptionSE をスローする TimeZoneSE インスタンス IllegalArgumentExceptionSE - タイムゾーンの指定が無効な場合 public static StringSE[] addStringToArray(@Nullable StringSE[] array, StringSE str)
String を指定された String 配列に追加し、入力配列の内容と指定された String で構成される新しい配列を返します。array - 追加する配列 (null にすることができます)str - 追加する String null)@Nullable public static StringSE[] concatenateStringArrays(@Nullable StringSE[] array1, @Nullable StringSE[] array2)
String 配列を 1 つに連結し、重複する配列要素を 2 回含めます。元の配列の要素の順序は保持されます。
array1 - 最初の配列 (null にすることができます)array2 - 2 番目の配列 (null にすることができます)null の場合、null )@Nullable public static StringSE[] mergeStringArrays(@Nullable StringSE[] array1, @Nullable StringSE[] array2)
String 配列を 1 つにマージします。重複する配列要素は 1 回だけ含まれます。元の配列内の要素の順序は保持されます(重複する要素は例外で、最初の出現時にのみ含まれます)。
array1 - 最初の配列 (null にすることができます)array2 - 2 番目の配列 (null にすることができます)null の場合、null )public static StringSE[] sortStringArray(StringSE[] array)
String 配列をソート済み配列に変換します。array - ソース配列 null)public static StringSE[] toStringArray(CollectionSE<StringSE> collection)
Collection を String 配列にコピーします。Collection には String 要素のみが含まれている必要があります。
collection - コピーする Collection String 配列 public static StringSE[] toStringArray(EnumerationSE<StringSE> enumeration)
String 配列にコピーします。列挙には、String 要素のみを含める必要があります。enumeration - コピーする列挙 String 配列 public static StringSE[] trimArrayElements(@Nullable StringSE[] array)
String 配列の要素をトリミングし、各要素で String.trim() を呼び出します。array - 元の String 配列 public static StringSE[] removeDuplicateStrings(StringSE[] array)
4.2 では、LinkedHashSetSE を使用するため、元の順序が保持されます。
array - String 配列 @Nullable public static StringSE[] split(@Nullable StringSE toSplit, @Nullable StringSE delimiter)
String を区切り文字が最初に現れる位置で分割します。結果に区切り文字を含めません。toSplit - 分割する文字列 delimiter - 文字列を分割する String で区切り文字が見つからなかった場合は null @Nullable public static PropertiesSE splitArrayElementsIntoProperties(StringSE[] array, StringSE delimiter)
Properties インスタンスが生成され、デリミタの左がキーを提供し、デリミタの右が値を提供します。Properties インスタンスに追加する前にキーと値の両方をトリミングします。
array - 処理する配列 delimiter - を使用して各要素を分割する (通常、等号)Properties インスタンス、または処理する配列が null または空の場合は null @Nullable public static PropertiesSE splitArrayElementsIntoProperties(StringSE[] array, StringSE delimiter, @Nullable StringSE charsToDelete)
Properties インスタンスが生成され、デリミタの左がキーを提供し、デリミタの右が値を提供します。Properties インスタンスに追加する前にキーと値の両方をトリミングします。
array - 処理する配列 delimiter - を使用して各要素を分割する (通常、等号)charsToDelete - 分割操作(通常は引用符記号)を試みる前に各要素から削除する 1 つ以上の文字、または削除を行わない場合は null Properties インスタンス、または処理する配列が null または空の場合は null public static StringSE[] tokenizeToStringArray(@Nullable StringSE str, StringSE delimiters)
StringTokenizerSE を介して、指定された String を String 配列にトークン化します。トークンを削除し、空のトークンを省略します。
指定された delimiters ストリングは、任意の数の区切り文字で構成できます。これらの各文字を使用して、トークンを分離できます。区切り文字は常に単一の文字です。複数文字の区切り文字については、delimitedListToStringArray(java.lang.String, java.lang.String) の使用を検討してください。
str - トークン化する String delimiters - String として組み立てられた区切り文字 (各文字は個別に区切り文字と見なされます)StringTokenizerSE, String.trim()SE, delimitedListToStringArray(java.lang.String, java.lang.String)public static StringSE[] tokenizeToStringArray(@Nullable StringSE str, StringSE delimiters, boolean trimTokens, boolean ignoreEmptyTokens)
StringTokenizerSE を介して、指定された String を String 配列にトークン化します。 指定された delimiters ストリングは、任意の数の区切り文字で構成できます。これらの各文字を使用して、トークンを分離できます。区切り文字は常に単一の文字です。複数文字の区切り文字については、delimitedListToStringArray(java.lang.String, java.lang.String) の使用を検討してください。
str - トークン化する String delimiters - String として組み立てられた区切り文字 (各文字は個別に区切り文字と見なされます)trimTokens - String.trim()SE を介してトークンをトリミングする ignoreEmptyTokens - 結果の配列から空のトークンを省略します(トリミング後に空のトークンにのみ適用されます。StringTokenizer は最初のトークンを後続の区切り文字と見なしません)。StringTokenizerSE, String.trim()SE, delimitedListToStringArray(java.lang.String, java.lang.String)public static StringSE[] delimitedListToStringArray(@Nullable StringSE str, @Nullable StringSE delimiter)
String を取得し、String 配列に変換します。 単一の delimiter は複数の文字で構成できますが、tokenizeToStringArray(java.lang.String, java.lang.String) とは対照的に、潜在的な区切り文字の束としてではなく、単一の区切り文字列と見なされます。
str - 入力 Stringdelimiter - 要素間の区切り文字 (これは、個々の区切り文字の束ではなく、単一の区切り文字です)tokenizeToStringArray(java.lang.String, java.lang.String)public static StringSE[] delimitedListToStringArray(@Nullable StringSE str, @Nullable StringSE delimiter, @Nullable StringSE charsToDelete)
String を取得し、String 配列に変換します。 単一の delimiter は複数の文字で構成できますが、tokenizeToStringArray(java.lang.String, java.lang.String) とは対照的に、潜在的な区切り文字の束としてではなく、単一の区切り文字列と見なされます。
str - 入力 Stringdelimiter - 要素間の区切り文字 (これは、個々の区切り文字の束ではなく、単一の区切り文字です)charsToDelete - 削除する文字のセット。不要な改行を削除するのに便利です。例: "\r\n\f" は String 内のすべての新しい行と改行を削除します tokenizeToStringArray(java.lang.String, java.lang.String)public static StringSE[] commaDelimitedListToStringArray(@Nullable StringSE str)
str - 入力 Stringpublic static SetSE<StringSE> commaDelimitedListToSet(@Nullable StringSE str)
これにより重複が抑制され、4.2 の時点で、返されたセットの要素は LinkedHashSetSE の元の順序を保持することに注意してください。
str - 入力 StringString エントリのセット removeDuplicateStrings(String[])public static StringSE collectionToDelimitedString(@Nullable CollectionSE<?> coll, StringSE delim, StringSE prefix, StringSE suffix)
coll - 変換する Collection delim - 使用する区切り文字 (通常、"," )prefix - 各要素を開始する String suffix - 各要素を終了する String Stringpublic static StringSE collectionToDelimitedString(@Nullable CollectionSE<?> coll, StringSE delim)
Collection を区切られた String (CSV など)に変換します。toString() の実装に役立ちます。
coll - 変換する Collection delim - 使用する区切り文字 (通常、"," )Stringpublic static StringSE collectionToCommaDelimitedString(CollectionSE<?> coll)
Collection を区切り文字付き String (CSV など)に変換します。toString() の実装に役立ちます。
coll - 変換する Collection Stringpublic static StringSE arrayToDelimitedString(@Nullable ObjectSE[] arr, StringSE delim)
String 配列を区切り記号付き String (CSV など)に変換します。toString() の実装に役立ちます。
arr - 表示する配列 delim - 使用する区切り文字 (通常、"," )String