`
大象06
  • 浏览: 119645 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java关于截取字符串的实现

    博客分类:
  • Java
 
阅读更多

  遇到这样一个问题,假设我们输入一串字符,不保证这一串字符里面是否有汉字,然后用户希望能过通过自己输入想要截断的字节数,将这个字符串截断输出,比如有这么一个字符串:“def中国abc你好”,想要以3个字节输出,应该是怎么样的呢?

Java里面是如何实现呢?

  其实这类问题主要是在中文与英文所占的字节数不一样的原因,中文是2个字节,英文和数字都是1个字节,理解了这个就很好实现了。

  主要步骤是将字符串先转化成字符数组,代码如下:

/**
	 *  字符串转化成数组
	 * @param str
	 * @return
	 */
	public static String[] splitToArray(String str) {
		String[] newStr = new String[str.length()];
		for (int i = 0; i < newStr.length; i++) {
			newStr[i] = str.substring(i,i+1);
		}
		return newStr;
	}

 然后就遍历每个字符,我们会声明一个计数变量,如果已达到用户要求的字节数,就会清零,然后输入之前截取的字符串。

public static void truncateStr(String str, int n) {
		int count = 0;
		String regex = "[\\u4e00-\\u9fa5]";
		System.out.println(str.length());
		String[] temp = splitToArray(str);
		for (int i = 0; i < temp.length; i++) {
			if (temp[i].matches(regex)) {
				count +=2;
			} else {
				count +=1;
			}
			if(count<n){
				System.out.print(temp[i]);
			}else if(count  == n ){
				System.out.print(temp[i]);
				count = 0;
				System.out.println();
			}else{
				count = 0;
				System.out.println();
			}
		}
	}

 最后就是在main方法中调用即可。

private static String inputStr = "";
	private static int cbyte = 0;

	public static void main(String[] args) {
		System.out.println("请输入字符串:");
		Scanner scanner = new Scanner(System.in);
		inputStr = scanner.next();
		System.out.println("请输入需要截断的字节数:");
		Scanner scanner2 = new Scanner(System.in);
		cbyte = scanner2.nextInt();

		truncateStr(inputStr, cbyte);
	}
 大致上这样就可以实现了。
分享到:
评论

相关推荐

    Java精确截取字符串.doc

    这个问题在文档标题“Java精确截取字符串.doc”中提到,描述也指出了解决字符串过长并需要添加省略号的需求。 以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...

    jsp页面截取字符串

    JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...

    java中如何截取字符串.txt

    根据提供的文件信息,本文将详细解释Java中截取字符串的各种方法及其使用场景,并结合部分示例代码进行说明。 ### Java中截取字符串的方法 在Java编程语言中,字符串的处理是一项非常重要的技能,特别是在开发中...

    截取字符串

    在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...

    Java精确截取字符串.pdf

    总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...

    按byte截取字符串

    本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...

    截取指定长度的字符串

    例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,其中`start`是开始索引,`end`是结束索引(不包括该位置的字符)。例如,对于字符串`s = "Hello, world!"`,`s[7:12]`将返回`"world"`。 2. ...

    怎么截取字符串的小程序

    在标题为“怎么截取字符串的小程序”的知识主题中,我们将深入探讨如何在不同的编程语言中实现这一功能,以及它在实际应用中的价值。描述中提到的方法是通过确定字符串的起始位置和结束位置,然后进行截取,这是一种...

    关于java按字节截取带有汉字的字符串的解法

    Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char)而不是字节的。因此,如果我们需要按照字节截取,需要自定义方法来处理。以下是一个简单的示例,...

    字符串按照指定的字节数来截取

    在Python中,可以使用内置的`[start:end]`切片操作来截取字符串。如果要考虑字节,我们需要使用`encode()`方法将字符串转化为字节串,因为Python的切片默认是基于字符的。例如: ```python s = "你好,世界" byte_s...

    截取特定部分字符串

    以上就是关于“截取特定部分字符串”的详细解释,涵盖了从截取到重组的整个过程,以及在Android和Java环境中的实践应用。在编程实践中,理解和熟练运用这些技巧将有助于提高代码的效率和可读性。

    java 实现截取字符串并按字节分别输出实例代码

    本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...

    java字符串处理取出括号内的字符串

    例如,我们可以使用`substring()`方法来截取字符串的一部分,但这并不适用于提取括号内的内容,因为我们需要识别开括号和闭括号的位置。 接下来,我们引入正则表达式(Regular Expression),它是处理字符串的强大...

    Java精确截取字符串[归类].pdf

    在Java编程中,有时我们需要对字符串进行精确的截取,以适应特定的显示需求或处理长文本。在上述内容中,主要讨论了两种常见的Java字符串截取方法。 第一种方法是使用`substring()`函数,这是一个基础且直接的字符...

    java中英文字符串截取

    在Java编程语言中,处理字符串是一项常见的任务,尤其是在进行...上述代码提供了一个具体的示例,展示了如何在GBK编码下安全地截取字符串,但开发者也应熟悉其他常见编码(如UTF-8),以便在不同的应用场景中灵活应对。

    Java字符串查找和提取异常处理

    本文将详细介绍如何在Java中实现字符串查找与提取功能,并在此过程中妥善处理可能出现的各种异常情况。通过分析提供的代码示例`IndexOfAndCharAt.java`,我们将了解到如何自定义异常、读取用户输入、查找字符串中的...

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    为了实现这一需求,Java提供了String类的getBytes()方法,用于将字符串转换成字节数组,同样也提供了substring()方法用于截取字符串。但在本例中,使用substring()方法无法直接达到目标,因为这种方法无法直接对字节...

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...

Global site tag (gtag.js) - Google Analytics