2014-04-15 105 views
0

我想在字符串被屏蔽时保留空格。下面是我为掩蔽字符串而编写的代码,但没有考虑到我的Arraylist中的一些字符串有空白区域。屏蔽字符串时保留空格

for (int i=0;i<secretWord.length();i++){ 
    System.out.print("*"); 
} 
+3

您可以使用'charAt()'并检查当前字符是否为空格。 –

回答

2
System.out.print(secretWord.replaceAll("\\S","*")); 

(在正则表达式,\S意味着单个字符不是一个空白字符。)

2

你可以简单地检查一个字符是否为空格!

for (int i=0;i<secretWord.length();i++){ 
    if(secretWord.charAt(i)!=' ') 
    { 
     System.out.print("*"); 
    } 
    else 
    { 
     System.out.print(" "); 
    } 
} 
+1

我倾向于利用一切机会在单行if块上推广'{}'。这种方式更容易阅读和容易出错。 –

+0

@ user3430741欢迎您! :-) – Devavrata

2

我认为你正在寻找的,以空间的性格和空间*掩盖字符串。
这样做:

for (int i=0 ; i<secretWord.length() ; i++){ 
     if(Character.isWhitespace(charAt(i))){ 
      System.out.print(charAt(i)); 
     }else{ 
      System.out.print("*"); 
      } 
    } 
+1

'secretWord.charAt(i)==“”'应该是'secretWord.charAt(i)==''' –

+0

@MikeB谢谢Mike。我忘了这是一个角色。 :) –

+0

标签和其他空白字符呢?请参阅@ajb解决方案 - 它更复杂。 –

相关问题