2014-11-06 134 views
1

我有一个String text "Welcome!to [email protected]";字符串转换为字符数组,包括标点符号

我知道如何将它转换为接收阵列[欢迎,对,JAVA]

String[] aaa = text.split("[\\p{IsPunctuation}\\p{IsWhite_Space}]"); 
    System.out.println(Arrays.toString(aaa)); //priinting 

但我需要包括标点符号。我需要收到[欢迎,!,to,java,@]

任何人都知道谁来接收它?

我之所以需要这样做,是因为我有一个randomise(char[] cw)方法,它为我调整单词。然而,当标点包括

public void randomise(char[] cw) 
    { 
     for (int i = 1; i < cw.length-1; i++) 
     { 
      //my range 
      int range= (int)(Math.random() * (cw.length - i - 1)); 

      //swap index 
      int index=i+range; 

      //swap 
      char temp = cw[i]; 
      cw[i] = cw[index]; 
      cw[index] = temp; 

     } 
     System.out.println(cw); 

    } 

感谢您的回复

+1

是否http://stackoverflow.com/questions/2206378/how该方法是疯狂拆分字符串 - 但也保留的分隔符或http://stackoverflow.com/questions/275768/is-there-a-way-to-split-strings-with-string-split - 包含分隔符包含您正在寻找的答案?另外,请查看['StreamTokenizer'](http://docs.oracle.com/javase/7/docs/api/java/io/StreamTokenizer.html),使用'ByteArrayInputStream'和'!','@'等设置为“普通”字符。 – 2014-11-06 18:24:21

+1

是的。你的第二个链接帮助了我。谷歌搜索和coundnt找到。你输入什么词找到它?非常感谢 – 2014-11-06 18:38:07

+0

类似于[“java split string keep delimiter”](https://www.google.com/search?q=java+split+string+keep+delimiter),其中“保留分隔符”是关键术语那里。我刚刚从过去的经验中了解到的'StreamTokenizer'。 – 2014-11-06 18:48:05

回答

1

找到一个帮助感谢JasonC

String str = "Welcome!to [email protected]"; 
inputs = str.split("(?!^)\\b"); 
相关问题