Java中的字符串(一)—— 去除首尾空格

在亲爱的老王的建议下觉得写博客来记录学习生活确实是个不错的idea。

其实在此之前两度想要写博客,一次是刚刚决定做CTF的时候,一次是用ege做完三级项目之后,但是都因为时间问题耽搁了~~

今天先开一个头,关于ege图形库部分会在事后补上,这次绝对不坑。

转入正题,简单的记录一下Java中的字符串的相关操作——去除字符串中首尾的空格。

 

例如:已知字符串“  string  ”,该字符串首尾各有两个空格,现需要实现的功能是去除首尾的空格,即输出“string”

 

方法一:利用java中已有的方法

java.lang.String中已定义了去除字符串首尾空格字符的方法:String trim()

代码如下:

public class String_D {
	public static void main(String[] args) {
		
		String str = "  string  ";
		
		str = str.trim();
		
		System.out.println(str);
	}
}

         输出结果为:string

 

 

方法二:自己编写算法实现

 如果不想利用已有的方法,也可以自己写一段小算法来实现该功能。

首先我们要了解java中的string类型在底层可以看作一个字符数组,其拥有length属性,我们也可以通过其索引(下角标)来定位到字符串的单个字符上,在此我们介绍两个相关的方法。

char charAt(index) 返回指定位置上的字符

例如如下代码:

public class String_D {
	public static void main(String[] args) {
		
		String str = "abcdef";
		
		System.out.println(str.charAt(2));
	}
}

其输出结果为:c

在此需要注意的是,因为底层为字符数组,所以索引是从0开始的。 

 

 ②String substring (int beginIndex)/String substring (int beginIndex,int endIndex) 返回从beginIndex开始的子字符串(字串)/返回从beginIndex开始到endIndex结束的子字符串(字串)

需要注意的是此字符串是左闭右开的,即输出beginIndex位而不输出endIndex位。

通过如下代码展示其基本用法:

public class String_D {
	public static void main(String[] args) {
		
		String str = "abcdef";
		
		System.out.println(str.substring(2));
		System.out.println(str.substring(2,4));
	}
}

其输出结果为:

                 cdef
                           cd

 

了解了以上的两个函数后我们就可以设计简单的算法了,想要去掉首尾字符串只要分别确定首尾第一个不是空格的字符的下角标再用substring存入str即可。

代码如下:

public class String_D {
	public static void main(String[] args) {
		
		String str = "  string  ";
		int beginIndex = 0;//用于确定第一个不是空格的字符所在的位置
		int endIndex = str.length()-1;//用于确定从后起第一个不为0的字符的位置
		
		while(beginIndex < endIndex && str.charAt(beginIndex) == ' ')
			beginIndex ++;
		while(beginIndex < endIndex && str.charAt (endIndex) == ' ')
			endIndex --;
		
		str = str.substring(beginIndex, endIndex+1);
		
		System.out.println(str);
	}
}

输出结果为:string

 

====================================正经的分割线==========================================

嘤~人家第一次写博客,好紧张

嘤~就这么点东西竟然写了半个多小时

嘤~不知道有没有错,还请大佬们指出啊

嘤嘤嘤~

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值