-2

请找到图像我有这样的字符串:Hello,1,2 World,6,7 Home,10,11 我希望我的输出为:Hello World Home 1 6 10 2 7 11 下面是我的代码:def a = "你好,1,2 世界,6,7 家,10,11”;a=a.replace(',',"\n") println(a)

4

3 回答 3

2

您可以简单string.split(',')地获取一个列表,并' '.join(string.split(','))获取由 a 分隔的所有这些元素的字符串' '。这是非常简单的拆分,对于更复杂的解析,使用csv模块。

这个答案适用于 Python。我不知道你为什么同时拥有javapython作为标签。

于 2021-07-21T05:37:10.480 回答
1

您无法从逻辑上生成该输出,因为没有(明显的)方法来确定整数的顺序。

但是,如果您只想隔离单词和整数,然后按照定义它们的顺序将它们连接在一起,那么可以这样做。

初始字符串中的标记不只是逗号分隔,因此先前答案中建议的拆分技术将不起作用。因此,您需要使用 regex 模块:

import re

d = 'Hello,1,2 World,6,7 Home,10,11'
w = ''
n = ''
for token in re.split(',| ', d):
    try:
        int(token)
        n += token + ' '
    except ValueError:
        w += token + ' '

print(w + n.rstrip())

其输出将是:Hello World Home 1 2 6 7 10 11

于 2021-07-21T08:40:58.750 回答
0
public static void main(String[] args) {
    String a = "Hello,1,2 World,6,7 Home,10,11";
    
    StringBuffer sb1 = new StringBuffer();
    StringBuffer sb2 = new StringBuffer();
    StringBuffer sb3 = new StringBuffer();
    String[] ar = a.split(",");
    for (int i = 0; i < ar.length; i++) {
        if(ar[i].contains(" ") && isNumeric(ar[i].split(" ")[0])){
            sb1.append(ar[i].split(" ")[0]+" ");
            sb2.append(ar[i].split(" ")[1]+" ");
        } else if(isNumeric(ar[i])){
            sb3.append(ar[i]+" ");
        } else{
            sb2.append(ar[i]+" ");
        }
    }
    System.out.println(sb2+""+sb3+""+sb1);
}

public static boolean isNumeric(String strNum) {
    if (strNum == null) {
        return false;
    }
    try {
        double i = Integer.parseInt(strNum);
    } catch (NumberFormatException nfe) {
        return false;
    }
    return true;
}

你应该试试这个。

于 2021-07-21T12:53:09.870 回答