我有一个像这样的字符串:String attributes = " foo boo, faa baa, fii bii,"
我想得到这样的结果:
String[] result = {"foo boo", "faa baa", "fii bii"};
所以我的问题是如何在一次拍摄中分割和修剪我已经拆分:
String[] result = attributes.split(",");
但spaces
仍在结果中:
String[] result = {" foo boo", " faa baa", " fii bii"};
^ ^ ^
我知道我们可以制作一个循环并为每个人制作trim
,但我想在镜头中制作它。
答案 0 :(得分:52)
使用正则表达式\s*,\s*
进行拆分。
String result[] = attributes.split("\\s*,\\s*");
初始和尾随空格
之前的解决方案仍然留下初始和尾随的空格。因此,如果我们期待其中任何一个,那么我们可以使用以下解决方案删除相同的内容:
String result[] = attributes.trim().split("\\s*,\\s*");
答案 1 :(得分:24)
使用java 8,你可以在一行中这样做
String[] result = Arrays.stream(attributes.split(",")).map(String::trim).toArray(String[]::new);
答案 2 :(得分:2)
如果逗号之间没有文本,则以下表达式不会创建空元素:
String result[] = attributes.trim().split("\\s*,+\\s*,*\\s*");
答案 3 :(得分:0)
用逗号和空格分割怎么样:
String result[] = attributes.split(",\\s");
答案 4 :(得分:0)
String result[] = attributes.trim().split("\\s*,[,\\s]*");
此前发布在此处:https://blog.oio.de/2012/08/23/split-comma-separated-strings-in-java/
答案 5 :(得分:0)
创建自己的自定义函数
ParticleSystem m_System;
ParticleSystem.Particle[] m_Particles;
int prevNumParticles = 0;
private void LateUpdate()
{
InitializeIfNeeded();
int numParticlesAlive = m_System.GetParticles(m_Particles);
if (numParticlesAlive != prevNumParticles)
ParticleControl(m_Particles[0]); //reference the newest particle (might be last in array)
prevNumParticles = numParticlesAlive;
}
private void ParticleControl(particle)
{
// do look at for the particle here
}
void InitializeIfNeeded()
{
if (m_System == null)
m_System = GetComponent<ParticleSystem>();
if (m_Particles == null || m_Particles.Length < m_System.main.maxParticles)
m_Particles = new ParticleSystem.Particle[m_System.main.maxParticles];
}
考虑自定义分隔符的重载
private static String[] split_and_trim_in_one_shot(String string){
String[] result = string.split(",");
int array_length = result.length;
for(int i =0; i < array_length ; i++){
result[i]=result[i].trim();
}
return result;
答案 6 :(得分:0)
// given input
String attributes = " foo boo, faa baa, fii bii,";
// desired output
String[] result = {"foo boo", "faa baa", "fii bii"};
这应该有效:
String[] s = attributes.trim().split("[,]");
@Raman Sahasi回答:
在分割字符串之前,可以修剪尾随空格和前导空格。我使用了定界符
,
,因为它是您字符串中唯一的定界符
答案 7 :(得分:0)
最好的方法是:
value.split(",").map(function(x) {return x.trim()});