问题描述
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 的。我不知道为什么你有 java
和 python
作为标签。
您无法在逻辑上生成该输出,因为没有(明显的)方法来确定整数的顺序。
但是,如果您只想隔离单词和整数,然后按照定义的顺序将它们连接在一起,那么就可以做到。
初始字符串中的标记不仅仅是逗号分隔,因此之前答案中建议的拆分技术将不起作用。您将需要使用正则表达式模块:
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;
}
你应该试试这个。