0

列に文字列データを返すデータベース クエリがあります。特定の文字列がデータに存在するかどうかに基づいて、このフィールドをトリミングしたいですか?

文字列にコンマ "," が含まれている場合、最初のコンマの LEFT を返します 文字列にハイフン "-" が含まれている場合、最初のハイフンの LEFT を返します 文字列にどちらも含まれていない場合は、文字列の最初の 14 文字を返すには?

私は現在、この方向に向かっています:

StringHandling.LEFT(row1.DESCRIPTION,StringHandling.INDEX(row1.DESCRIPTION,"-"))

コンマまたはその欠如をチェックし、式に適切な部分文字列を返すロジックを含めるにはどうすればよいですか??

本当にありがとう!

4

3 に答える 3

1

このようなもの?(処理するように編集null)

public static String specialTrim(String input) {
    if (input == null)
        return null; // or return "", or whatever else you want
    if (input.contains(","))
        return input.substring(0, input.indexOf(","));
    if (input.contains("."))
        return input.substring(0, input.indexOf("."));
    return input.substring(0, Math.min(14, input.length()));
}

Math.min()、文字列の長さが 14 文字未満の場合に処理します。

于 2011-07-08T10:13:46.953 に答える
1

別の代替手段(ボヘミアンの Math.min() テクニックを盗みました;-)):

 public String dbString(String s){
        String[] parts = s.split("(,|-)");

        String trimmed = parts.length > 1? parts[0] : parts[0].substring(0, Math.min(14,  parts[0].length());

        return trimmed;
    }
于 2011-07-08T11:24:13.967 に答える
0

String.contains、String.indexOf、および String.substring の API を確認してください。

String theString = <wherever it comes from>;
// if it contains a ,
if (theString.contains(",")) {
    // return all elements one position to the left
    return theString.substring(0, theString.indexOf(",") - 1);
} else // and repeat
于 2011-07-08T10:14:09.810 に答える