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

发布于 2024-12-23 08:41:27 字数 246 浏览 2 评论 0原文

例如: 在 MySQL 中。数据类型文本, 如果我们在 MySQL 表中定义了一个 Text 列,那么当在 JDBC 中检索该列的值时,您会得到带有多余尾随空格的值,您可以调用 String#trim() , 但如果此类列旨在接受空格字符(输入时按空格键)。那我能做什么呢?

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

For example:
In MySQL. the data type Text,
If we have a column defined as Text in a MySQL table, when to retrieve value of this column in JDBC, you get the value with excess trailing spaces, you can call String#trim(), but if such column is intended to accept space characters (hit space key when input). What can I do then?

MySQL Text is only for example, please consider other similar data types in other database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

又怨 2024-12-30 08:41:27

因此,您的问题应该表述为:“如何摆脱 RDBMS 放入字段中的尾随空格?”

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

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

现在,如果您的列具有可变宽度,但您的字段包含尾随空格,则意味着您已将表从具有固定宽度列的旧表转换而来。除了读取所有字段、对它们应用 String.Trim() 并将它们写回数据库之外,您无能为力。

So, your question should be worded as: "How can I get rid of trailing spaces that my RDBMS puts into my fields?"

The answer is simple: never declare fixed-width columns such as CHAR(10) or NCHAR(10). These types were invented back in the dark ages of relational databases, and the only reason they still exist is for backwards compatibility with legacy systems.

Always use variable length width columns: VARCHAR, NVARCHAR, TEXT.

Now, if your columns are of variable width, and yet your fields contain trailing spaces, this means that you have converted your table from some older table which had fixed-width columns. There is nothing you can do other than read all of your fields, apply String.Trim() to them, and write them back to the database.

吝吻 2024-12-30 08:41:27

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

String.trim() will not delete white space inside the string.

生寂 2024-12-30 08:41:27

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

I think String.trim() does what you want, it deletes leading and trailing whitespace. The whitespace that is inside of the string will stay. Is this what you are asking?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文