如何区分普通空白字符与其他空格字符

时间:2011-12-31 09:50:18

标签: java jdbc relational-database rdbms

例如: 在MySQL中。数据类型Text, 如果我们在MySQL表中将列定义为Text,何时在JDBC中检索此列的值,您将获得具有多余尾随空格的值,您可以调用String#trim(),但是如果这样的列是预期的接受空格字符(输入时按空格键)。那我该怎么办?

MySQL Text仅作为示例,请考虑其他数据库中的其他类似数据类型。

3 个答案:

答案 0 :(得分:2)

所以,你的问题应该措辞为:“我如何摆脱我的RDBMS放入我的字段的尾随空格?”

答案很简单:永远不要声明固定宽度的列,例如CHAR(10)或NCHAR(10)。这些类型是在关系数据库的黑暗时代发明的,它们仍然存在的唯一原因是向后兼容遗留系统。

始终使用可变长度宽度列:VARCHAR,NVARCHAR,TEXT。

现在,如果您的列的可变宽度,但是您的字段包含尾随空格,则这意味着您已从具有固定宽度列的旧表中转换了表。除了阅读所有字段之外,您无法做任何事情,将String.Trim()应用于它们,并将它们写回数据库。

答案 1 :(得分:1)

String.trim()不会删除字符串中的空格。

答案 2 :(得分:0)

我认为String.trim()可以做你想要的,它会删除前导空格和尾随空格。字符串内部的空格将保留。这是你要问的吗?