`
yxx676229549
  • 浏览: 73893 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

String byte 中文字符

 
阅读更多

import java.io.UnsupportedEncodingException;


/**
 * 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 
 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,
 * 6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
 *
 */

public class SplitString {

	public static String splitStr(String s,int num){
		if(num>=s.getBytes().length){
			return s;
		}
		for(int i = 0;i<s.length();i++){
			if(s.substring(i, i+1).getBytes().length == 1){
				num--;
			}else if(s.substring(i, i+1).getBytes().length == 2){
				num--;
				num--;
			}
			if(num == 0){
				return s.substring(0, i+1);
			}
			if(num == -1){
				return s.substring(0, i);
			}
			
		}
		
		return null;
	}
	
	public static void main(String[] args) {
		System.out.println(splitStr("我你ABC", 4));
	}
}


//下面是第二种方法
public class SplitString {

	public static void main(String[] args) throws UnsupportedEncodingException {
		String str = "我们ABC";
		int num = trimGBK(str.getBytes("GBK"),5);
		System.out.println(str.substring(0, num));
	}
	
	public static int trimGBK(byte[] buf,int n){
		int num = 0;
		boolean bChineseFirstHalf = false;
		for(int i = 0; i < n; i++){
			System.out.println(buf[i]);
			if(buf[i] < 0 && !bChineseFirstHalf){
				bChineseFirstHalf = true;
			}else{
				num++;
				bChineseFirstHalf = false;
			}
		}
		return num;
	}
}

分享到:
评论

相关推荐

    delphi-string互相转化为byte数组

    在Delphi编程环境中,字符串(String)与字节数组(Byte Array)之间的转换是常见的操作,尤其是在处理二进制数据、网络通信或者文件读写时。本文将深入探讨如何在Delphi中实现这两种类型的数据互换。 1. **字符串...

    Android byte[] 和 String互相转换

    在Java和Android中,将字节数组转换为字符串最常用的方法是使用`new String(byte[])`构造函数。此方法会使用平台默认的字符编码,这可能会导致在不同系统上显示不同的结果。为了避免这个问题,我们通常指定一个明确...

    c#中string转换成字节byte的处理方法

    在C#编程语言中,字符串(string)与字节(byte)之间的转换是常见的操作之一。这类转换在处理网络通信、文件读写等场景时尤为常见。本文将详细介绍如何在C#中实现从string到byte及byte[]的有效转换,并探讨其中涉及...

    std::string、char*、const char*转托管byte数组或托管字符串String

    std::string、char*、const char*转托管byte数组或托管字符串String std::string、char*、const char*是C++中三个不同的字符串表示方式,它们都可以转换为托管的byte数组或字符串String,但是在C++/CLI中,它们的...

    Java String与Byte类型转换

    这个过程包括将源代码中的字符串常量转换为字节码,这涉及到了String到Byte的转换。`input.txt`可能是一个文本文件,其内容可能需要在网络编程中读取并转换为字节流进行传输。 总之,Java中的String与Byte类型的...

    C#string转byte(16进制)代码.txt

    输入string 输出byte 16进制下的转换

    C# char[]与string byte[]与string之间的转换详解

    1、char[]与string之间的转换 //string 转换成 Char[] string str=hello; char[] arr=str.ToCharArray(); //Char[] 转换成 string string str1 = new ...//string 转换成 byte[] (字符串是用哪种编码生成的byte[]

    C#_string_byte数组转换解析

    在C#编程语言中,字符串(string)与字节数组(byte array)之间的转换是常见的操作,尤其在处理二进制数据、网络传输或文件读写时。本篇文章将详细解析C#中如何进行这两种数据类型的转换,并讨论转换过程中需要注意...

    String(含Hex)与Byte数组互相转换[代码]

    在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...

    简单说说JAVA的String和byte[]的关系

    - `new String(byte[], String charsetName)`: 指定字符集名称进行解码,例如`new String(bytes, "GBK")`。 #### 三、编码与解码的重要性 - **编码**: 将字符序列转换为字节数组的过程称为编码。编码时需要指明...

    java工具类 string转10进制sacii byte数组再转16进制字符数组再转16进制byte数组 string与BCD互转

    java工具类 : string转10进制sacii byte数组、 10进制sacii byte数组转16进制字符数组、 16进制字符数组转16进制byte数组、 string与BCD互转等方法,包含多个转换方法, 足够满足日常解包组包需求

    C#byte[]与汉字、16进制字符的转换[文].pdf

    在C#中,我们可以使用Encoding类、Convert类和String.Format方法将字符串、Byte数组、十六进制字符串和汉字字符串之间进行转换。但是,在处理汉字和十六进制字符时,我们需要特别注意编码问题。

    按byte截取字符串

    因为不同的编码方式决定了每个字符占据的字节数,例如UTF-8编码的中文字符可能占3个字节,而GBK则占2个字节。 2. **获取字节数组**:使用`getBytes()`方法将字符串转换为字节数组,该方法会根据当前的`Charset`进行...

    String 与byte[] 间的转换

    在 Java 中,String 类型可以使用 getBytes() 方法将字符串转换为 byte[] 数组,但是这种方法有可能会出现乱码问题,因为 getBytes() 方法使用平台默认的编码方式,这可能会导致乱码问题。为了避免这种问题,我们...

    java中String_十六进制String_byte[]之间相互转换

    在Java开发中,字符串(String)、十六进制表示的字符串以及字节数组(byte[])之间的转换是非常常见的需求,尤其是在处理网络通信、文件读写等场景下。本文将详细介绍如何在Java中实现这些数据类型之间的相互转换,...

    android byte字节数组转换十六进制字符串

    在Android开发中,有时我们需要将字节数组(byte array)转换为十六进制字符串,以便于数据存储、传输或调试。这是因为字节数组是二进制数据,而十六进制字符串则是一种人类可读的表示方式。下面我们将详细讨论如何...

    Go-此工具用于将16进制字符串转换成10进制byte数组

    本工具专注于将16进制字符串转换为10进制的byte数组,这在处理如数据库存储、加密解密、网络通信等场景中非常常见。 1. **16进制字符串与10进制byte数组的概念** - **16进制字符串**:由0-9和A-F(或a-f)字符组成...

    vb.rar_resolution_vb string byte

    在VB.NET编程环境中,将字符串(String)与字节数组(Byte())相互转换是常见的操作。在处理这些类型转换时,确保不丢失数据分辨率是至关重要的,尤其是在处理包含特殊字符或者非ASCII字符的数据时。标题“vb.rar_...

    C# string byte数组转换解析.docx

    在C#编程语言中,字符串(string)与字节数组(byte[])之间的转换是常见的操作,特别是在处理网络通信、文件读写或数据编码解码等场景。本篇文章将详细探讨C#中如何实现这两种类型之间的转换,并提供实用的代码示例...

    C# string byte数组转换解析.pdf

    在C#编程中,字符串(string)与字节(byte[])之间的转换是常见的操作,特别是在处理网络传输、文件存储或数据解析时。本文将详细讲解C#中如何进行这两种类型之间的转换,并提供一些实用的方法。 首先,我们来看如何将...

Global site tag (gtag.js) - Google Analytics