2017-03-18 208 views
1

我在将字符数组转换为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 

如何创建一个字符数组,其中在字符串末尾任何空白字符留出一个字符串?

+0

String sAnotherWord =(new String(anotherWord))。trim(); – user681574

回答

3

尝试trimmingString的尾部空格使用String.trim()。只要做到: -

char[] anotherWord = new char[5]; 
String sAnotherWord = new String(anotherWord); 
sAnotherWord = sAnotherWord.trim(); 

现在,空间将被删除。

编辑1:由于spencer.sm在他的回答,何况你秒打印说法是错误的,因为它打印sWord.length(),而不是sAnotherWord.length()

2

在Java中不能有空的char。所有的字符都必须是一个字符。如果要在字符串末尾删除空格,请使用字符串trim()方法。


而且,你的第二个print语句应该sAnotherWord.length()而不是sWord.length()结束。如下所示:

System.out.println("Length of '" + sAnotherWord + "' is " + sAnotherWord.length()); 
+0

谢谢!我修正了错字。 – zbalda

+0

为什么downvote? –