根据字符串值修剪java字符串?

根据字符串值修剪java字符串?,java,if-statement,string-formatting,indexof,Java,If Statement,String Formatting,Indexof,我有一个数据库查询,它在一列中返回一些字符串数据。我想根据数据中是否存在特定字符串来修剪此字段 如果字符串包含逗号“,”,我希望返回第一个逗号的左边 如果字符串包含一个hypen“-”,我想返回第一个hypen的左边 如果字符串都不包含,我想返回字符串的前14个字符 我现在正朝着这个方向前进: StringHandling.LEFT(row1.DESCRIPTION,StringHandling.INDEX(row1.DESCRIPTION,"-")) 如何包含一些逻辑来检查逗号是否存在,并在

我有一个数据库查询,它在一列中返回一些字符串数据。我想根据数据中是否存在特定字符串来修剪此字段

如果字符串包含逗号“,”,我希望返回第一个逗号的左边 如果字符串包含一个hypen“-”,我想返回第一个hypen的左边 如果字符串都不包含,我想返回字符串的前14个字符

我现在正朝着这个方向前进:

StringHandling.LEFT(row1.DESCRIPTION,StringHandling.INDEX(row1.DESCRIPTION,"-"))
如何包含一些逻辑来检查逗号是否存在,并在表达式中返回相应的子字符串

非常感谢

像这样的?(编辑为处理
null


Math.min()
用于处理字符串长度小于14个字符的情况。

检查API中的string.contains、string.indexOf和string.substring

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
字符串字符串=;
//如果它包含一个,
if(字符串包含(“,”){
//将所有元素返回到左侧一个位置
返回字符串子字符串(0,字符串索引为(“,”)-1);
}否则,重复一遍
另一种选择(我偷了波希米亚的Math.min()技术;-):


您应该重新检查数据库设计………:-|差不多,只需删除'-1'。波希米亚人,你的代码工作得很好!正如你所看到的,我仍然在寻找编程的方法!我完全理解你的代码,但缺乏必要的知识,它是如何构造来编写自己!我知道当一个问题开始出现时这是一个问题,但我可以添加一个转折点吗?我怎么能包含null处理?如果字符串为null,它将返回为null?是的,减去“-1”并将“.”更改为“-”…但是我现在遇到了null指针异常..doh@波希米亚人开始着手处理迷你降价,以便通知您我之前的反馈
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
 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;
    }