判断前台输入项的长度应该都会碰到String.length() 判断出来没有超出最大长度,存到数据库就超出长度的问题,oracle字符集是gbk的不太清楚,如果是UTF-8,中文是占三个字符的,所以要对中文进行特别判断。
代码如下:
public static int lengthOfUTF8(String value) { int valueLength = 0; if(value==null) { return valueLength; } String chinese = "[\u0391-\uFFE5]"; /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为3,否则为1 */ for (int i = 0; i < value.length(); i++) { /* 获取一个字符 */ String temp = value.substring(i, i + 1); /* 判断是否为中文字符 */ if (temp.matches(chinese)) { /* 中文字符长度为3 */ valueLength += 3; } else { /* 其他字符长度为1 */ valueLength += 1; } } return valueLength; } public static void main(String[] args) { String str="abc中文d二"; System.out.println("常规length:"+str.length()); System.out.println("占用数据库空间:"+StringUtil.lengthOfUTF8(str)); }
另外,在做测试的时候意外发现,如果在一个数据类型为 varchar2(4000)的字段里插入4000个中文字(for update),会被截断,并且使用 length() 获取长度时,获得的结果 是1333,和我以前想的不一样,所以在sql中使用length() 判断是否还可以存储更多字符也是不准确的,可能有其他函数吧,以后再查。
相关推荐
除了判断字符串长度,我们还需要了解如何截取字符串。Java提供了多种方式来截取字符串: 1. **substring(int beginIndex)**:截取从`beginIndex`(包含)到字符串末尾的部分。 2. **substring(int beginIndex, int ...
在Java编程语言中,字符串处理是一项基础且重要的任务。标题提到的"Java检索字符串中是否存在某字符",实际上涉及到字符串的查找算法。这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配...
- `contains(String str)`:判断字符串是否包含指定子字符串,返回布尔值。 - `lastIndexOf(String str)`:查找子字符串最后一次出现的位置。 - `startsWith(String prefix)`和`endsWith(String suffix)`:检查...
### Java字符串操作大全 本文将详细介绍Java中字符串的各种操作方法,包括基本的字符串处理功能以及更高级的操作技巧。这些知识点对于Java初学者来说至关重要,并且能够帮助开发者更好地理解和运用Java中的字符串类...
### Java处理字符和字符串知识点详解 #### 一、概述 在Java编程中,字符和字符串是最常见的数据类型之一。为了方便高效地处理这些数据类型,Java提供了强大的支持,包括`Character`类和`String`类等。这些类位于`...
本文将基于标题和描述所提需求,详细探讨Java环境下实现字符串截取的方法以及相关知识点。 首先,要理解Java中字符串(String)和字节(byte)的区别。在Java中,字符串是一种对象类型,用于表示文本。而字节则是...
* 判断字符串是否包含重复字符 * @param str 输入的字符串 * @return 如果字符串中有重复字符,返回true;否则,返回false */ public static boolean containRepeatChar(String str) { // 首先检查字符串是否为...
本次实验旨在深化理解Java中的数组与字符串操作,聚焦于`String`类与`StringBuffer`类的掌握,包括它们的常用方法、相等性判断的不同方式、数组的创建及引用机制,以及`Arrays`类的静态方法应用。实验通过具体的编程...
根据给定文件的信息,本文将围绕“JS与Java中判断字符串中文、英文混合长度的方法”这一主题进行深入探讨。文章将分别介绍JavaScript和Java中如何处理包含中文字符和英文字符的混合字符串,并计算其等效长度。 ### ...
5. 将生成的字符串添加到List集合中,并判断是否已经存在相同的字符串。 6. 对List集合进行排序,按照从左向右的原则和0-9数字优先原则。 7. 使用Collections.sort()方法对集合进行排序。 总结 Java生成随机字符串...
字符串的比较方法包括`equals()`用于判断字符串是否相等,`equalsIgnoreCase()`忽略大小写比较,`startsWith()`和`endsWith()`检查字符串是否以特定子串开始或结束,以及`compareTo()`和`compareToIgnoreCase()`进行...
- **计算截取次数**:通过字符串长度与每次截取的字节数进行模运算来判断是否能整除,进而决定最后一次截取的长度。 - **执行截取**:循环遍历字符串,每次取出指定长度的子串并打印出来。 #### 注意事项 1. **...
Java中判断字段真实长度的实例是针对如何在编程时考虑到中英文字符在长度上的差异,并且给出一个能够在字符串处理时反映出这种差异的实用方法。这个实例中提到的是,中文字符占用的空间为两个英文字符的空间。这个...
而 `str2` 是一个空字符串,它引用了一个长度为零的字符串对象。因此,`str1` 实际上并没有分配内存空间,而 `str2` 则分配了空间来存储空字符串。 比较这两个变量时,应该使用 `if (str1 == null)` 来判断 `str1` ...
9. **常量池**:Java中的字符串字面量存储在内存的常量池中,相同内容的字符串对象会共享同一内存地址,这也是为什么`"abc".equals("abc")`总是返回`true`的原因。 10. **intern()**方法:当调用`intern()`时,如果...
- `startsWith(String prefix)`和`endsWith(String suffix)`:判断字符串是否以指定前缀或后缀开头或结束。 八、Java 8的字符串处理 Java 8引入了`StringJoiner`和`Stream`API,使得字符串处理更加简洁高效。例如,...
以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```java public class StringTrimmer { private String str; private int counterOfDoubleByte; private byte b...
在Java编程中,有时我们需要对字符串进行精确截取,以便适应特定的需求,比如在网页显示、数据存储或者传输时限制长度。本篇将探讨如何在Java中实现这一功能。 首先,最常见的一种方法是使用`substring()`方法。...
Java 判断字符串a和b是否互为旋转词 旋转词是字符串的一种变形形式,即将字符串的一部分移动到后面形成新的字符串。例如,字符串abc的旋转词有abc、acb、cba等。判断两个字符串是否互为旋转词是一个常见的算法问题...