Java中截取字符串

合集下载

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截取方法,即从字符串中截取需要的一部分内容。

在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中,字符串是一个常用的数据类型,而字符串的截取操作也是非常常见的。

字符串截取是指从一个字符串中选取一段连续的字符子串(也称为子字符串),并返回这个子串的方法。

下面介绍几种常用的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截取字符串的⼏种⽅式在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截取空格的方法

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方法
Java中的substring方法可用于截取字符串的一部分。

该方法以两个参数为输入:起始索引和结束索引。

起始索引是包含在截取的子字符串中的第一个字符的索引。

例如,如果起始索引为0,则截取的子字符串将包括字符串的第一个字符。

结束索引是不包含在截取的子字符串中的第一个字符的索引。

例如,如果结束索引为5,则截取的子字符串将包括索引0到4之间的字符。

通过使用substring方法,您可以轻松地从一个较长的字符串中获取所需的子字符串。

该方法尤其适用于需要访问字符串的特定部分的应用程序。

java 截取字符串的函数

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 截取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编码的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();
}
}
}
}。

相关文档
最新文档