我如何用逗号分隔格式化字符串

问题描述

please find the image 我有一个这样的字符串:Hello,1,2 World,6,7 Home,10,11 我希望我的输出为: 你好世界之家 1 6 10 2 7 11 下面是我的代码: def a = "Hello,11"; a=a.replace(',',"\n") 打印(一)

解决方法

您可以简单地执行 string.split(',') 来获取列表,并执行 ' '.join(string.split(',')) 来获取所有这些元素的字符串,这些元素以 ' ' 分隔。这是非常简单的拆分,要进行更复杂的解析,请使用 csv 模块。

这个答案是针对 Python 的。我不知道为什么你有 javapython 作为标签。

,

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

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

初始字符串中的标记不仅仅是逗号分隔,因此之前答案中建议的拆分技术将不起作用。您将需要使用正则表达式模块:

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

,
public static void main(String[] args) {
    String a = "Hello,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;
}

你应该试试这个。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...