Java中截取字符串
JAVA技巧(长字符串按指定长度截取)
在web开发中,会遇到这样⼀个问题,想让某个内容全部保持在⼀定长度范围内,未超出的⾏全部显⽰,超长的⾏只允许显⽰⼀定的长度,结尾⽤省略号代替。
粗想⼀下,实现这个功能很容易,直接取字符串的长度(⽤length()⽅法),如果超出,就⽤substring()⽅法截取⼀段,然后再在结尾处加上省略号。
但实际上这样做是不⾏的,⾄少说是某种程度上得不到我们想要的结果,因为⼀个英⽂字母和⼀个汉字⽤lenth⽅法得到的值都是1,这不错,但是在显⽰时,⼀个汉字占两个字母的位置,这样即使我们截取了指定长度的字符串,但实际显⽰起来是参差不齐的。
下⾯是我对这个问题给出的解决⽅案。
/** * @(#)StringUtil.java * * * @author Examda * */ public class StringUtil{ public StringUtil() { } public static void main(String[] args){ String str="12345 英afa五左,⼤有枝节⼀碟sd.sdfas 2008-11-22"; System.out.println(StringUtil.omitString(str,30)); str="12345 英afa五左,⼤有枝节s⼀碟sd.sdfas 2008-11-22"; System.out.println(StringUtil.omitString(str,30)); str="12345 英afa五左,⼤有枝节a"; System.out.println(StringUtil.omitString(str,30)); str="12345 英afa五左,⼤有枝节基"; System.out.println(StringUtil.omitString(str,30)); } /* * 计算字符串的字节长度(字母数字计1,汉字及标点计2) * */ public static int byteLength(String string){ int count = 0; for(int i=0;i if(Integer.toHexString(string.charAt(i)).length()==4){ count += 2; }else{ count++; } } return count; } /* * 按指定长度,省略字符串部分字符 * @para String 字符串 * @para length 保留字符串长度 * @return 省略后的字符串 */ public static String omitString(String string,int length){ StringBuffer sb = new StringBuffer(); if(byteLength(string)>length){ int count = 0; for(int i=0;i char temp = string.charAt(i); if(Integer.toHexString(temp).length()==4){ count += 2; }else{ count++; } if(count sb.append(temp); } if(count==length-3){ sb.append(temp); break; } if(count>length-3){ sb.append(" "); break; } } sb.append("..."); }else{ sb.append(string); } return sb.toString(); } } 执⾏结果是: 12345 英afa五左,⼤有枝节⼀... 12345 英afa五左,⼤有枝节s ... 12345 英afa五左,⼤有枝节a 12345 英afa五左,⼤有枝节基。
java截取方法
java截取方法Java截取方法,即从字符串中截取需要的一部分内容。
在Java中,我们可以使用substring()方法来截取字符串,也可以使用StringTokenizer类等其他的方法来实现。
本文将着重介绍substring()方法的使用及其注意事项。
一、substring()方法的基本格式和作用Java中字符串的截取方法是通过String类提供的substring()方法来实现的,它的基本格式如下:``` public String substring(int beginIndex) public String substring(int beginIndex, int endIndex) ```其中,第一个参数代表要截取的子串的起始位置,第二个参数代表要截取的子串的结束位置。
注意,substring()方法截取出的字符串不包括指定的结束位置所在的字符,即该字符不在截取出的字符串中。
这个方法的作用是从目标字符串中截取出指定位置的子串,并返回一个新的字符串。
二、substring()方法的使用实例下面通过几个例子来演示substring()方法的使用。
例1. 截取字符串中前面的几个字符``` public class TestSubstring { public static void main(String[] args) { String str = "Hello, world!"; String newStr = str.substring(0, 5);System.out.println(newStr); } }输出结果:Hello ```在这个程序中,我们截取了字符串“Hello, world!”的前5个字符,最终输出的结果是“Hello”。
例2. 截取字符串中的一段子串``` public class TestSubstring { public static void main(String[] args) { String str = "Hello, world!"; String newStr = str.substring(7, 12);System.out.println(newStr); } }输出结果:world ```在这个程序中,我们截取了字符串“Hello, world!”中从第8个字符开始,到第12个字符(不包括第12个字符)的子串“world”,最终输出的结果就是这个子串。
java字符串截取子串的方法
java字符串截取子串的方法在Java中,字符串是一个常用的数据类型,而字符串的截取操作也是非常常见的。
字符串截取是指从一个字符串中选取一段连续的字符子串(也称为子字符串),并返回这个子串的方法。
下面介绍几种常用的Java字符串截取子串方法。
1. substring()方法substring()方法是Java中最常用的字符串截取方法之一,它可以从原字符串按照指定开始位置和结束位置获取一个子字符串。
基本语法:public String substring(int beginIndex, int endIndex)第一个参数beginIndex为子字符串的起始索引(包含),第二个参数endIndex为子字符串的结束索引(不包含)。
例如:String str = "Hello, World!";String substr = str.substring(0, 5);System.out.println(substr);输出结果为:"Hello"例如:3. subSequence()方法subSequence()方法也可以用来截取字符串的子串,它的用法与substring()方法基本相同。
split()方法用于将一个字符串按照指定的分隔符分割成子字符串数组,然后返回这个数组。
其中,参数regex为分隔符,可以是一个正则表达式。
5. replace()方法replace()方法能够将字符串中的某些字符替换成指定的字符,也可以删除某些字符。
基本语法:public String replace(char oldChar, char newChar) 或public String replace(CharSequence target, CharSequence replacement)其中,第一个参数oldChar为需要被替换的字符,第二个参数newChar为替换后需要使用的字符。
JAVA截取字符串的几种方式
JAVA截取字符串的⼏种⽅式在java中提供了很多字符串截取的⽅式。
下⾯就来看看⼤致有⼏种。
1.split()+正则表达式来进⾏截取。
将正则传⼊split()。
返回的是⼀个字符串数组类型。
不过通过这种⽅式截取会有很⼤的性能损耗,因为分析正则⾮常耗时。
String str = "abc,11,abc123,1";String[] strs=str.split(",");for(int i=0,len=strs.length;i<len;i++){System.out.println(strs[i].toString());}运⾏结果:abc11abc12312.通过subString()⽅法来进⾏字符串截取。
subString通过不同的参数来提供不同的截取⽅式2.1只传⼀个参数例如:String sb = "abcdef122d";sb.substring(2);将字符串从索引号为2开始截取,⼀直到字符串末尾。
(索引值从0开始);2.2传⼊2个索引值String sb = "abcdef122d";sb.substring(2,4);从索引号2开始到索引好4结束(并且不包含索引4截取在内,也就是说实际截取的是2和3号字符);运⾏结果如下:cdef122dcd3.通过StringUtils提供的⽅法StringUtils.substringBefore(“dskeabcee”, “e”);/结果是:dsk/这⾥是以第⼀个”e”,为标准。
StringUtils.substringBeforeLast(“dskeabcee”, “e”)结果为:dskeabce这⾥以最后⼀个“e”为准。
java截取空格的方法
java截取空格的方法(原创实用版3篇)目录(篇1)1.Java 截取空格的方法概述2.截取字符串中空格的方法3.使用正则表达式截取空格的方法4.截取空格的实际应用案例正文(篇1)【Java 截取空格的方法概述】在 Java 编程语言中,处理字符串时经常需要截取其中的空格。
本文将为您介绍几种常用的 Java 截取空格的方法,帮助您轻松解决这个问题。
【截取字符串中空格的方法】Java 提供了一种简单的方法来截取字符串中的空格,那就是使用`replace()`方法。
以下是一个示例:```javapublic class Main {public static void main(String[] args) {String str = "这是一个有空格的字符串";String result = str.replace(" ", "");System.out.println(result); // 输出结果为:这是一个有空格的字符串}}```【使用正则表达式截取空格的方法】如果您需要使用正则表达式来截取字符串中的空格,可以使用`replaceAll()`方法。
以下是一个示例:```javapublic class Main {public static void main(String[] args) {String str = "这是一个有空格的字符串";String result = str.replaceAll("s", "");System.out.println(result); // 输出结果为:这是一个有空格的字符串}}```【截取空格的实际应用案例】假设我们有一个字符串,其中包含了姓名和年龄等信息,我们希望将这些信息按照空格进行分割,以便进行进一步处理。
以下是一个示例:```javapublic class Main {public static void main(String[] args) {String str = "张三 25 李四 30 王五 28";String[] result = str.split(" ");for (String s : result) {System.out.println(s); // 输出结果为:张三 25,李四 30,王五 28}}}```通过以上几种方法,您可以轻松地在 Java 中截取字符串中的空格。
java substring方法
java substring方法
Java中的substring方法可用于截取字符串的一部分。
该方法以两个参数为输入:起始索引和结束索引。
起始索引是包含在截取的子字符串中的第一个字符的索引。
例如,如果起始索引为0,则截取的子字符串将包括字符串的第一个字符。
结束索引是不包含在截取的子字符串中的第一个字符的索引。
例如,如果结束索引为5,则截取的子字符串将包括索引0到4之间的字符。
通过使用substring方法,您可以轻松地从一个较长的字符串中获取所需的子字符串。
该方法尤其适用于需要访问字符串的特定部分的应用程序。
java 截取字符串的函数
java 截取字符串的函数Java中截取字符串的函数主要是指对字符串进行截取,截取出字符串的一部分。
这种操作在Java编程中经常用到,是一个基本的字符串处理功能。
在Java中,有多种截取字符串的函数,下面将介绍一些常见的方法。
1. substring方法Java中最常用的字符串截取方法就是substring()方法了。
这个方法可以截取字符串的一部分,并返回一个新的字符串。
它的语法如下:String substring(int startIndex)其中,startIndex表示开始截取的位置,endIndex表示结束截取的位置(不包含该位置的字符)。
如果省略endIndex,则截取的字符串包括startIndex位置到字符串结尾的所有字符。
例如,若要截取字符串"Hello World!"中的"World",则可以使用以下代码:String str = "Hello World!";String substr = str.substring(6, 11); // 输出"World"2. split方法split()方法是将Target字符串分隔成多个子字符串,并将结果存放在一个数组中。
这个方法接收一个分隔符作为参数,分隔符可以是一个普通的字符、一个字符串或一个表达式。
它的语法如下:3. replace方法replace()方法用于将字符串中的指定字符或子字符串替换为新的字符或子字符串。
它的语法如下:String replace(char oldChar, char newChar)其中,oldChar表示要被替换的字符,newChar表示替换后的字符;target表示要被替换的子字符串,replacement表示替换后的子字符串。
trim()方法用于去除字符串开头和结尾的空格。
这个方法在对用户输入的数据进行处理时非常有用,因为用户经常会不小心在输入中多加空格。
java 截取500个字节的方法
java 截取500个字节的方法### Java 截取500个字节的方法在Java编程中,截取指定数量的字节通常用于处理字符串或文件数据。
以下是一个简单的指导,展示了如何使用Java来截取500个字节。
#### 使用String类如果处理的是字符串数据,可以使用以下方法:```javapublic class ByteExtractor {public static void main(String[] args) {String originalString = "这里是需要截取的原始字符串内容...";try {String substring = extractBytes(originalString, 500);System.out.println("截取后的字符串: " + substring);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}public static String extractBytes(String str, int byteSize) throws UnsupportedEncodingException {if (str == null || byteSize <= 0) {return "";}// 指定编码,如UTF-8,GBK等String encoding = "UTF-8";byte[] strBytes = str.getBytes(encoding);// 确保不会越界int endIndex = Math.min(strBytes.length, byteSize);// 截取指定数量的字节byte[] subBytes = new byte[endIndex];System.arraycopy(strBytes, 0, subBytes, 0, endIndex);// 将截取的字节数组转回字符串return new String(subBytes, encoding);}}```注意:上面的代码假设字符串是以UTF-8编码的。
java 字符串截取方法
java 字符串截取方法Java 字符串截取方法在Java编程中,经常会遇到需要截取字符串的情况。
字符串截取是指从一个字符串中获取部分内容的操作,常用于处理字符串的长度、格式等需求。
本文将介绍Java中常用的字符串截取方法,并提供使用示例。
1. 使用substring()方法截取字符串Java中的String类提供了substring()方法,可以用于截取字符串的指定部分。
substring()方法有两种重载形式,一种是指定截取起始位置的方式,另一种是同时指定起始位置和结束位置的方式。
1.1 使用起始位置截取字符串substring(int beginIndex)方法可以从指定起始位置开始截取字符串,包括起始位置的字符。
例如:```javaString str = "Hello World";String result = str.substring(6);System.out.println(result); // 输出 "World"```上述代码中,str.substring(6)表示从索引为6的字符开始截取,截取的结果是"World"。
1.2 使用起始位置和结束位置截取字符串substring(int beginIndex, int endIndex)方法可以从指定起始位置开始截取字符串,并指定截取的结束位置,不包括结束位置的字符。
例如:```javaString str = "Hello World";String result = str.substring(6, 11);System.out.println(result); // 输出 "World"```上述代码中,str.substring(6, 11)表示从索引为6的字符开始截取,截取到索引为10的字符,截取的结果是"World"。
java中字符串截取方法
java中字符串截取方法Java是一种广泛应用的编程语言,它提供了丰富的字符串操作方法。
其中之一就是字符串截取,也就是从一个字符串中提取出指定的部分。
在Java中,有多种方法可以用来截取字符串。
下面将逐步介绍这些方法,并以此为主题详细解释每一步。
首先,我们需要了解字符串的基本特性。
字符串在Java中被表示为一个对象,它是不可变的,也就是说一旦创建了一个字符串对象,就不能更改其内容。
因此,在进行字符串截取时,实际上是创建一个新的字符串对象来保存截取的部分。
一、使用substring方法Java中最常用的字符串截取方法是使用substring方法。
这个方法有两种重载形式,分别是传入一个参数的substring(int beginIndex)和传入两个参数的substring(int beginIndex, int endIndex)。
1. substring(int beginIndex)传入一个参数的substring方法用于截取指定位置及其之后的所有字符。
其中,参数beginIndex表示截取的起始位置,包含该位置的字符。
示例代码如下:javaString str = "Hello, world!";String newStr = str.substring(7);System.out.println(newStr); 输出: "world!"在这个例子中,初始字符串是"Hello, world!",我们使用substring方法从第7个位置开始截取,得到的新字符串是"world!"。
2. substring(int beginIndex, int endIndex)传入两个参数的substring方法用于截取beginIndex和endIndex之间的字符。
其中,参数beginIndex表示截取的起始位置,包含该位置的字符;参数endIndex表示截取的结束位置,不包含该位置的字符。
java中substring()用法
java中substring()用法Java中substring()用法1. 概述substring()方法在Java中是一个常用的字符串处理方法,用于获取原字符串的一个子字符串。
它可以根据索引位置截取字符串的一部分,或者从指定索引位置开始截取到字符串的末尾。
下面将详细介绍substring()的用法。
2. 截取指定索引范围的子字符串有时候我们需要获取字符串的某一部分,可以使用以下方法:String str = "Hello, World!";String subStr = (7, 12);上面的代码将从原字符串str中截取索引7到索引12(不含)之间的子字符串,即”World”。
需要注意的是,substring()方法的第二个参数是截取结束位置的索引(不包含在内)。
3. 截取指定索引开始到字符串结尾的子字符串如果需要截取从某个索引位置开始到字符串结尾的部分,可以使用以下方式:String str = "Hello, World!";String subStr = (7);上述代码会从原字符串str中的索引7开始,一直截取到字符串的末尾。
输出结果为”World!“。
4. 字符串截取的边界情况在使用substring()方法时,需要注意边界情况,以避免出现异常。
如果指定的索引超出了字符串的范围,会抛出IndexOutOfBoundsException异常。
String str = "Hello, World!";String subStr = (7, 20); // 超出索引范围,会抛出异常5. 使用substring()截取字符串的常见应用场景下面是一些使用substring()方法的常见应用场景:•截取字符串的一部分用于输出、展示或存储。
•提取字符串中的关键信息用于字符串处理或判断条件。
•根据特定的分隔符截取字符串的一部分,以进行后续的处理或解析。
java截取字符串的方法
java截取字符串的方法在Java编程中,截取字符串是一项非常基本的操作。
截取字符串通常是指从一个字符串中提取出指定的一部分,可以用于获取特定信息或者进行字符串处理等操作。
Java中提供了多种截取字符串的方法,下面介绍常用的几种方法:1. substring方法substring方法是Java中最基本的截取字符串方法,它可以从一个字符串中截取指定长度或者从指定位置开始到指定位置结束的子字符串。
例如:String str = 'hello world';String subStr1 = str.substring(0, 5); //截取从0开始到5结束的子字符串,即'hello'String subStr2 = str.substring(6); //截取从6开始到字符串结束的子字符串,即'world'2. split方法split方法可以按照指定的分隔符将一个字符串分割成多个子字符串,并将这些子字符串存储在一个数组中。
例如:String str = 'hello,world';String[] subStrs = str.split(','); //按照逗号分隔字符串,得到数组['hello', 'world']3. Matcher类Matcher类是Java中用于正则表达式匹配的类,它可以根据正则表达式截取字符串中满足条件的子字符串。
例如:String str = 'hello123world456';Pattern pattern = pile('d+'); //匹配数字Matcher matcher = pattern.matcher(str);while (matcher.find()) {System.out.println(matcher.group());}以上就是Java中常用的几种截取字符串的方法,可以根据实际需求选择不同的方法进行操作。
java中String类的substring方法
java中String类的substring方法String类的substring方法是Java中常用的字符串处理方法之一、该方法用于截取指定位置的子字符串,并返回子字符串。
String类是Java中常用的字符串操作类,它提供了许多常用的字符串处理方法,其中包括substring方法。
substring方法有两种重载形式:1. substring(int beginIndex): 该方法用于截取从指定位置开始到字符串末尾的子字符串。
其中,beginIndex是开始截取的位置索引,取值范围为0到字符串长度减一2. substring(int beginIndex, int endIndex): 该方法用于截取从指定开始位置到指定结束位置的子字符串。
其中,beginIndex是开始截取的位置索引,endIndex是结束截取的位置索引,取值范围为0到字符串长度。
需要注意的是,substring方法截取的子字符串不包括结束位置的字符。
例如,字符串"Hello World",调用substring(0, 5)会返回"Hello",而不是"Hello "。
下面是一些使用substring方法的示例:1.截取字符串的一部分:```javaString str = "Hello World";String substr = str.substring(6); // substr = "World"```2.截取字符串的指定范围:```javaString str = "Hello World";String substr = str.substring(6, 11); // substr = "World"```3.获取字符串的前n个字符:```javaString str = "Hello World";String substr = str.substring(0, n); // 获取前n个字符的子字符串```4.判断字符串是否以特定子字符串开头:```javaString str = "Hello World";boolean startsWithHello = str.substring(0,5).equals("Hello"); // true```5.判断字符串是否以特定子字符串结尾:```javaString str = "Hello World";boolean endsWithWorld = str.substring(6).equals("World"); // true```需要注意的是,当传入的索引超出字符串长度时,substring方法会抛出IndexOutOfBoundsException异常。
java中截取字符串的方式
java中截取字符串的⽅式1、length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length();2、charAt() 截取⼀个字符 例:char ch; ch="abc".charAt(1); 返回'b'3、getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart指定了⼦串开始字符的下标,sourceEnd指定了⼦串结束后的下⼀个字符的下标。
因此,⼦串包含从sourceStart到sourceEnd-1的字符。
接收字符的数组由target指定,target中开始复制⼦串的下标值是targetStart。
例:String s="this is a demo of the getChars method."; char buf[]=new char[20]; s.getChars(10,14,buf,0);4、getBytes() 替代getChars()的⼀种⽅法是将字符存储在字节数组中,该⽅法即getBytes()。
5、toCharArray()6、equals()和equalsIgnoreCase() ⽐较两个字符串7、regionMatches() ⽤于⽐较⼀个字符串中特定区域与另⼀特定区域,它有⼀个重载的形式允许在⽐较中忽略⼤⼩写。
boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars) boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)8、startsWith()和endsWith() startsWith()⽅法决定是否以特定字符串开始,endWith()⽅法决定是否以特定字符串结束9、equals()和== equals()⽅法⽐较字符串对象中的字符,==运算符⽐较两个对象是否引⽤同⼀实例。
java按字节截取带有汉字的字符串的解法(推荐)
java按字节截取带有汉字的字符串的解法(推荐)由于接⼝使⽤的oracle字段长度为固定字节数,然后传进来的字符串估计⽐数据库字段的总字节数要⼤,那么截取⼩于数据库字节数的字符串。
⾃⼰参考⽹上的例⼦,整了个递归调⽤就可以了,因为截取的字符字节长度必须⼩与数据库的字节长度,即如果最后⼀个字符为汉字,那么只能去掉往前截取。
/*** 判断传进来的字符串,是否* ⼤于指定的字节,如果⼤于递归调⽤* 直到⼩于指定字节数,⼀定要指定字符编码,因为各个系统字符编码都不⼀样,字节数也不⼀样* @param s* 原始字符串* @param num* 传进来指定字节数* @return String 截取后的字符串* @throws UnsupportedEncodingException*/public static String idgui(String s,int num)throws Exception{int changdu = s.getBytes("UTF-8").length;if(changdu > num){s = s.substring(0, s.length() - 1);s = idgui(s,num);}return s;}java⾯试题:编写⼀个截取字符串的函数,输⼊为⼀个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输⼊"我ABC汉DEF",6,应该输出为"我ABC"⽽不是"我ABC+汉的半个"。
⽬前很多流⾏的语⾔,如C#、Java内部采⽤的都是 Unicode 16(UCS2)编码,在这种编码中所有的字符都是两个字符,因此,如果要截取的字符串是中、英⽂、数字混合的,就会产⽣问题,如下⾯的字符串:String s = "a加b等于c,如果a等1、b等于2,那么c等3";上⾯的字符串既有汉字,⼜有英⽂字符和数字。
字符串截取方法
字符串截取方法1. 使用substring方法。
substring方法是一种常见且简单的字符串截取方法,它可以从原始字符串中提取出指定位置的子串。
其基本语法如下:```java。
String str = "Hello, World!";String substr = str.substring(startIndex, endIndex);```。
其中,startIndex表示子串的起始位置(包括该位置的字符),endIndex表示子串的结束位置(不包括该位置的字符)。
需要注意的是,startIndex和endIndex都是以0为起始的索引,即第一个字符的索引为0。
2. 使用substring方法实现截取。
下面我们通过一个具体的例子来演示如何使用substring方法进行字符串截取:```java。
String str = "Hello, World!";String substr = str.substring(7, 12);System.out.println(substr); // 输出 "World"```。
在这个例子中,我们从原始字符串中截取出了"World"这个子串。
3. 使用substring方法截取指定长度的子串。
除了指定起始和结束位置外,我们还可以使用substring方法来截取指定长度的子串。
具体做法是将起始位置和结束位置进行相加,作为substring方法的第二个参数。
例如:```java。
String str = "Hello, World!";String substr = str.substring(7, 7 + 5);System.out.println(substr); // 输出 "World"```。
在这个例子中,我们同样截取出了"World"这个子串,只不过这次是通过指定起始位置和长度来实现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java中截取字符串——经本人验证通过
考题题干
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个"。
试题分析
本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。
参考答案
具体代码实现如下:
//package core_java;
import java.util.Scanner;
public class jiequzichuan {
static String ss; // 要进行截取操作的字符串
static int n; // 截取的字符串的字节数
public static void main(String[] args) {
System.out.println("请输入字符串:");
Scanner scStr = new Scanner(System.in); // 从键盘获取字符串
ss = scStr.next(); // 将Scanner对象中的内容以字符串的形式取出来
System.out.println("请输入字节数:");
Scanner scByte = new Scanner(System.in);// 从键盘获取字符串
n = scByte.nextInt(); // 将Scanner对象中的内容以数值的形式取出来
Interception(setValue()); // 方法与方法间的套用
}
public static String[] setValue() { // 此方法的作用是将字符串转换成字符串数组
String[] string = new String[ss.length()];// 创建一个字符数组string
for (int i = 0; i < string.length; i++) {
string[i] = ss.substring(i, i + 1); // 将字符串ss中的第i个字符取出,放入字符数组中string中
}
return string; // 将这个字符数组返回
}
public static void Interception(String[] string) {
int count = 0;
String m = "[\u4e00-\u9fa5]"; // 汉字的正则表达试
System.out.println("以每" + n + "字节划分的字符串如下所示:");
for (int i = 0; i < string.length; i++) {
if (string[i].matches(m)) {
// 将字符数组中的每一个元素与表则表达式进行匹配,如果相同则返回true count = count + 2;
// //如果当前字符是汉字,计数器count就加2
} else {
count = count + 1;
// 如果当前字符不是汉字,计数器count就加1
}
if (count < n) { // 如果当前计数器count的值小于n,则输出当前字符System.out.print(string[i]);
} else if (count == n) { // 如果当前计数器count的值等于n,则输出当前字符
System.out.print(string[i]);
count = 0;
System.out.println(); // 内循环结果,则需要换行,起到控制打印格式的作用
} else {
count = 0;// 如果当前计数器count的值大于n,则计数器count清零,接着执行外部循环
// System.out.println();
}
}
}
}。