将字符数组转换为无空格的字符串
我在将字符数组转换为Java字符串时遇到问题。我只想复制非空的字符。拿这个代码,例如:将字符数组转换为无空格的字符串
import java.util.*;
import java.lang.*;
import java.io.*;
class CharArrayToStringTest
{
public static void main (String[] args) throws java.lang.Exception
{
// works just fine - string has 5 characters and its length is 5
char[] word = {'h', 'e', 'l', 'l', 'o'};
String sWord = new String(word);
System.out.println("Length of '" + sWord + "' is " + sWord.length());
// string appears empty in console, yet its length is 5?
char[] anotherWord = new char[5];
String sAnotherWord = new String(anotherWord);
System.out.println("Length of '" + sAnotherWord + "' is " + sAnotherWord.length());
// isEmpty() even says the blank string is not empty
System.out.println("'" + sAnotherWord + "'" + " is empty: " + sAnotherWord.isEmpty());
}
}
控制台输出:
Length of 'hello' is 5
Length of '' is 5
'' is empty: false
如何创建一个字符数组,其中在字符串末尾任何空白字符留出一个字符串?
尝试trimming
String
的尾部空格使用String.trim()。只要做到: -
char[] anotherWord = new char[5];
String sAnotherWord = new String(anotherWord);
sAnotherWord = sAnotherWord.trim();
现在,空间将被删除。
编辑1:由于spencer.sm在他的回答,何况你秒打印说法是错误的,因为它打印sWord.length()
,而不是sAnotherWord.length()
。
在Java中不能有空的char
。所有的字符都必须是一个字符。如果要在字符串末尾删除空格,请使用字符串trim()
方法。
而且,你的第二个print语句应该sAnotherWord.length()
而不是sWord.length()
结束。如下所示:
System.out.println("Length of '" + sAnotherWord + "' is " + sAnotherWord.length());
谢谢!我修正了错字。 – zbalda
为什么downvote? –
String sAnotherWord =(new String(anotherWord))。trim(); – user681574