String.trim()方法去掉的不仅仅是空格


今天在做马士兵老师的聊天雏形系统项目时,因为想模仿QQ的聊天界面,于是把输入框从TextField类型换成了TextArea,然后从KeyAdapter类继承,重写keyReleased(KeyEvent e) 方法,虽然实现了功能,但是老多出一个换行符,想用String.replaceAll()方法替换掉换行符却达不到想要的效果(一直以为trim()方法只去掉空格);后来查了API文档才发现 trim() 去除的不仅仅是空格.


以下是trim()的API说明:

public String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.

If this String object represents an empty character sequence, or the first and last characters of character sequence represented by this String object both have codes greater than '\u0020' (the space character), then a reference to this String object is returned.

Otherwise, if there is no character with a code greater than '\u0020' in the string, then a new String object representing an empty string is created and returned.

Otherwise, let k be the index of the first character in the string whose code is greater than '\u0020', and let m be the index of the last character in the string whose code is greater than '\u0020'. A new String object is created, representing the substring of this string that begins with the character at index k and ends with the character at index m-that is, the result of this.substring(km+1).

This method may be used to trim whitespace (as defined above) from the beginning and end of a string.

Returns:
A copy of this string with leading and trailing white space removed, or this string if it has no leading or trailing white space.
红字部分说得很清楚:若字符串中没有代码大于 '\u0020'的字符,则创建并返回一个代表空字符串的新的String对象.
以下是我在keyReleased()方法中的写法:
private class EnterMonitor extends KeyAdapter {
		public void keyReleased(KeyEvent ke) {
			int k = ke.getKeyCode();
			if(k == KeyEvent.VK_ENTER) {
				try {
					dos.writeUTF(tf.getText().trim());
					//调用trim()方法去除按下ENTER时出现的换行符
					dos.flush();
					tf.setText("");
				}catch(IOException ioe) {
					ioe.printStackTrace();
				}
			}
		}
	}
  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值