在JAVA中拆分字符

时间:2016-02-18 06:27:06

标签: java string split spaces

import java.util.Scanner;

class Friendship
{
    public static void main (String args[])
    {
        Scanner a1=new Scanner (System.in);
        System.out.println("Enter your name");
        String me=a1.nextLine();

        System.out.println(" ");

        Scanner b1=new Scanner (System.in);
        System.out.println("Enter your partners name");
        String you=b1.nextLine();

        String both=me+you;

        String [] names = both.split("\\s+");

        for(int ch1=0; ch1<names.length; ch1++)
        {
            System.out.println(names[ch1] + " ");
        }

    }
}       

这对我不起作用。我想打破字母以及删除单词之间的空格。我在网站上发现了这个,但是当我运行它时,它说“String不能转换成int”。

输入 -

  

你的名字 - 白雪公主

     

您的合作伙伴名称 -       费迪南德

Output-
S
n
o
w
W
h
i
t
e
F
e
r
d
i
n
a
n
d

4 个答案:

答案 0 :(得分:1)

好吧,如果你必须使用split(),这是一种非标准的方法:

public static void main(String[] args) {
    String s1 = "Snow White";
    String s2 = "Ferdinand";
    String s= s1+s2;
    String[] arr = s.split("(?!\\s)"); // Thanks to Matt for correcting it.
    for(String str :  arr)
        System.out.println(str);
}

O / P:

S
n
o
w 
W
h
i
t
e
F
e
r
d
i
n
a
n
d

答案 1 :(得分:0)

Becausde你正在调用的方法,即2个参数

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String,%20int)

其中第二个参数是Item.aggregate( [{ $group: { _id: "$_id", numbers: { $push: { $cond: { if: { $gt: [ "$price.percent", 70 ] }, then: [10,25,50,70] , else: null, } } } } }]);

听起来你想使用int

修改

基于你的评论,我和你之间没有空格,所以拆分无论如何都不会有效。

答案 2 :(得分:0)

String.split(String)不会带两个String个参数。

String [] names = both.split("\\s+");   

splitString.split(String, int))的唯一其他版本是编译器尝试使用的内容,而String不是int,正如您的错误消息所示。< / p>

根据您上面的评论,为什么不循环meyou并跳过任何空白区域,构建临时String(s)并不是特别有效(特别是如果只是想要再次拆分并显示非空白字符)

for (char ch : me.toCharArray()) {
    if (!Character.isWhitespace(ch)) {
        System.out.println(ch);
    }
}
for (char ch : you.toCharArray()) {
    if (!Character.isWhitespace(ch)) {
        System.out.println(ch);
    }
}

答案 3 :(得分:0)

如果您想使用注册表:

    Pattern p = Pattern.compile("\\w");
    Matcher m = p.matcher("Snow White");
    while(m.find()){
        System.out.print(m.group());
    }
    System.out.println();

这会输出SnowWhite但每个角色都是分开的。