如何去掉字符串中的空字符

lion7beck 2014-08-28 03:17:29
得到一个字符串s,其内容为“X: +2.2980 Y: -2.9111 Z: +0.7660......”
后面的六个“.”表示六个ascii码值为0的字符。
请教下大家,怎么去掉后面的这六个字符呢?
——除了subString(),因为有时会出现类似“X: +2.20 Y: -2.91 Z: +0.7......”的形式。所以最好是直接截掉后面的字符,而不是取出前面的字符。
——后面的要去掉的字符,只会是一连串ascii码值为0的字符。
非常感谢大家!!
...全文
604 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
摆烂办不到 2014-09-03
  • 打赏
  • 举报
回复
String.trim()可以吗?
拯救司马 2014-09-01
  • 打赏
  • 举报
回复
System.out.println(str.replaceAll("[\00]","")); 去掉字符串中所有char=0的字符
LOVE-漂泊 2014-09-01
  • 打赏
  • 举报
回复
用replace方法,例如 replace(".",""); 把每个 . 都替换成“” 就可以了 如果你想要0 替换成“0” 就OK了
lion7beck 2014-09-01
  • 打赏
  • 举报
回复
引用 8 楼 w_l_o_v_e_c 的回复:
统一长度,用0或空格补全,再统一处理
这个……感觉走弯路了吧…… 看看楼上的方案,这个应该直接点。
lion7beck 2014-09-01
  • 打赏
  • 举报
回复
引用 6 楼 wo_xiaotong 的回复:
找到从后往前数第一个asc2不为0的字符 的位置,再去截
感谢指点! char c = 0; int startIndex = -1; indexOf( c, startIndex); 然后再截取就OK啦~
w_l_o_v_e_c 2014-09-01
  • 打赏
  • 举报
回复
统一长度,用0或空格补全,再统一处理
lion7beck 2014-09-01
  • 打赏
  • 举报
回复
引用 5 楼 shixitong 的回复:
[quote=引用 4 楼 lion7beckham 的回复:] [quote=引用 2 楼 shixitong 的回复:]
	public static void main(String args[]){
		String str="X: +2.2980 Y: -2.9111 Z: +0.7660......";
		String str1="X: +2.2980 Y: -2.9111 Z: +0.7......";
		System.out.println(str.substring(0,str.length()-6));
		System.out.println(str.substring(0,str1.length()-6));
	}
把最后的6个减掉就行了,也不论最后6个是什么字符
如果后面的ascii码值为0的字符个数不是6个,而是不确定的呢,比如8个、10个?[/quote] 楼主能举2个完整的demo吗?把那个ascii码值为0的地方补全,不太明白那个ascii值为0的地方,我还以为就最后6位呢[/quote] 这个不好举啊:这个字符串是从文件里读出来的,我不知道对应字符串该怎么写,因为ascii码值为0没有对应的字符呀。
齐岳 2014-09-01
  • 打赏
  • 举报
回复
都在后面,那就截到第一次出现的位置
jarvis4tonny 2014-08-31
  • 打赏
  • 举报
回复
找到从后往前数第一个asc2不为0的字符 的位置,再去截
shixitong 2014-08-29
  • 打赏
  • 举报
回复
引用 4 楼 lion7beckham 的回复:
[quote=引用 2 楼 shixitong 的回复:]
	public static void main(String args[]){
		String str="X: +2.2980 Y: -2.9111 Z: +0.7660......";
		String str1="X: +2.2980 Y: -2.9111 Z: +0.7......";
		System.out.println(str.substring(0,str.length()-6));
		System.out.println(str.substring(0,str1.length()-6));
	}
把最后的6个减掉就行了,也不论最后6个是什么字符
如果后面的ascii码值为0的字符个数不是6个,而是不确定的呢,比如8个、10个?[/quote] 楼主能举2个完整的demo吗?把那个ascii码值为0的地方补全,不太明白那个ascii值为0的地方,我还以为就最后6位呢
lion7beck 2014-08-29
  • 打赏
  • 举报
回复
引用 2 楼 shixitong 的回复:
	public static void main(String args[]){
		String str="X: +2.2980 Y: -2.9111 Z: +0.7660......";
		String str1="X: +2.2980 Y: -2.9111 Z: +0.7......";
		System.out.println(str.substring(0,str.length()-6));
		System.out.println(str.substring(0,str1.length()-6));
	}
把最后的6个减掉就行了,也不论最后6个是什么字符
如果后面的ascii码值为0的字符个数不是6个,而是不确定的呢,比如8个、10个?
lion7beck 2014-08-29
  • 打赏
  • 举报
回复
引用 1 楼 zhourrr1234 的回复:
用replace方法,例如 replace("......","");用空格代替
请问"......"怎么写?因为实际上并不是"......"字符串,而是ascii码为0的一串。我之所以用"......"来代替,是因为不知道怎么表示这些ascii码值为0的字符。
shixitong 2014-08-28
  • 打赏
  • 举报
回复
	public static void main(String args[]){
		String str="X: +2.2980 Y: -2.9111 Z: +0.7660......";
		String str1="X: +2.2980 Y: -2.9111 Z: +0.7......";
		System.out.println(str.substring(0,str.length()-6));
		System.out.println(str.substring(0,str1.length()-6));
	}
把最后的6个减掉就行了,也不论最后6个是什么字符
快乐随风 2014-08-28
  • 打赏
  • 举报
回复
用replace方法,例如 replace("......","");用空格代替

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧