`
- 浏览:
139186 次
- 来自:
...
-
/*编程:编写一个截取字符串的函数,输入为一个字符串和字节数,
输出为按字节截取的字符串。 但是要保证汉字不被截半个,
如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
*/
class SplitString {
private String str;
private int byteNum;
public SplitString() {
}
public SplitString(String str, int byteNum) {
this.str = str;
this.byteNum = byteNum;
}
public void splitIt() {
byte bt[] = str.getBytes();
System.out.println("Length of this String ===>" + bt.length);
if (byteNum > 1) {
if (bt[byteNum] < 0) {
pBinInt("bt[byteNum]", bt[byteNum]);
System.out.println("bt[" + byteNum + "] = " + bt[byteNum]);// 1
System.out
.println("bt[" + byteNum + "] = " + (int) bt[byteNum]);// 2
System.out.println("bt[" + byteNum + "] = "
+ (bt[byteNum] & 0x000000FF));// 3
System.out.println("bt[" + byteNum + "] = "
+ (bt[byteNum + 1] & 0XFF));// 4
String substrx = new String(bt, 0, --byteNum);
System.out.println(substrx);
} else {
String substrex = new String(bt, 0, byteNum);
System.out.println(substrex);
}
} else {
if (byteNum == 1) {
if (bt[byteNum] < 0) {
String substr1 = new String(bt, 0, --byteNum);
System.out.println(substr1);
} else {
String subStr2 = new String(bt, 0, byteNum);
System.out.println(subStr2);
}
} else {
System.out.println("输入错误!!!请输入大于零的整数:");
}
}
}
static void pBinInt(String s, int i) {
System.out.println(s + ", int: " + i + ", binary: ");
System.out.print(" ");
for (int j = 31; j >= 0; j--)
if (((1 << j) & i) != 0)
System.out.print("1");
else
System.out.print("0");
System.out.println();
}
}
class TestSplitString {
public static void main(String args[]) {
String str = "我abc的DEFe";
int num = 6;
SplitString sptstr = new SplitString(str, num);
sptstr.splitIt();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。这是因为一个中文字符通常占用多...
对于包含汉字的字符串,需要注意编码问题。不同的编程语言对非ASCII字符(如汉字)的处理方式不同。在Python 3中,字符串默认使用Unicode编码,可以直接处理汉字。而在一些其他语言中,如Java,可能需要先将字符串...
在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...
Java 中有多种方式可以实现字符串截取,包括使用 `substring`、`split` 和 `StringTokenizer` 等方法。在本例中,我们使用 `substring` 方法来实现字符串截取。 substring 方法 `substring` 方法用于从字符串中...
然而,当处理包含中文字符的字符串时,简单的按字符截取可能会出现问题,因为中文字符通常占用两个字节,而英文字符只占用一个字节。为了实现更精确的截取,可以采用如下的方法: ```java private String str; ...
然而,当涉及到处理中文字符时,Impala的内置函数`substr()`和`substring()`可能会遇到一些挑战,尤其是在截取中文字符串时可能出现乱码问题。这是因为这两个函数在设计时可能没有充分考虑多字节字符集,如UTF-8,而...
在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...
题目中提到“截取前5个字节, 字符串应该为‘java程’”,意味着我们需要理解,在UTF-8编码格式下,英文字符通常占用1个字节,而中文字符则占用3个字节。因此,实际上,从“java程序教程”中截取前5个字节,得到的...
总的来说,处理中文字符串截取的关键在于识别出汉字字符,并根据其字节位置进行适当的调整。在Java中,可以通过字节码判断是否为中文字符,从而实现精确截取。这些技术在处理中文文本时非常实用,尤其在界面展示、...
这种方法在实际开发中非常有用,特别是在处理中文字符串时。 在Java中,字符串的截取可以使用substring方法,但是这种方法不能保证汉字不被截半个,因为它是按照字符的个数来截取的,而中文字符占用两个字节,英文...
它可能包含了一个名为`sliceByByte`的方法,接受一个字符串和要截取的字节数作为参数,然后按照上述步骤进行操作。 SliceByByteTest.java作为测试文件,可能会创建一些测试用例,包括各种长度和编码的字符串,来...
本文将深入探讨如何在Java中有效地截取包含中文和英文字符的字符串,并解释给出的代码片段背后的逻辑。 ### Java中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。...
该方法能够确保在截断中文字符串时不会出现乱码,并且可以适用于JSP页面中的中文字符串截取需求。 #### 方法实现 ```java /** * 截取字符串,len为字节长度 * @param str 需要截取的字符串 * @param len 字节...
在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...
此方法用于去除字符串中的空白字符,包括空格、制表符等,以提高截取精度。 ```csharp public String ClearBlank(String str) { CharEnumerator myenum = str.GetEnumerator(); str = String.Empty; while ...
根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...
因此,当在Java程序中处理包含中英文混合的字符串时,必须考虑到编码差异,以避免截取错误或乱码的出现。 ### 实践应用 在实际开发中,特别是在Web开发、文本分析等领域,正确处理多语言字符串是非常关键的。使用...
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
在Java编程中,有时我们需要对字符串...总的来说,Java中的字符串截取需要考虑到字符编码和中文字符的特殊性,确保截取的结果既准确又符合预期。开发者需要根据实际场景选择合适的方法,保证程序的健壮性和用户体验。
这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符编码(GBK或UTF)来计算字符串的总长度。如果字符串的总长度超过预设的最大长度,...