Javascript 将字符串拆分为两个,长度几乎相同
我有一个字符串:“这是一个示例字符串”,我需要将其拆分为两个字符串,不打断单词,并且这两个字符串的长度最接近,因此结果将是:Javascript 将字符串拆分为两个,长度几乎相同,javascript,string,split,string-length,Javascript,String,Split,String Length,我有一个字符串:“这是一个示例字符串”,我需要将其拆分为两个字符串,不打断单词,并且这两个字符串的长度最接近,因此结果将是: ["This is a", "sample string"]. 另一个e.x: "Gorge is nice" => ["Gorge", "is nice"] 另外,如果函数可以作为param获得我将作为结果获得的元素数,这也会很好 谢谢你的帮助 您可以按空格分隔单词 e、 g: var words = 'George is nice' words = word
["This is a", "sample string"].
另一个e.x:
"Gorge is nice" => ["Gorge", "is nice"]
另外,如果函数可以作为param获得我将作为结果获得的元素数,这也会很好
谢谢你的帮助 您可以按空格分隔单词 e、 g:
var words = 'George is nice'
words = words.split(' ')
然后遍历数组并比较字符串长度。
举例来说
var concat = ''
for (var word in words)
{
word = words[word]
if (word.length < words[word - 1] )
{
concat += word
}
}
var concat=''
for(字中的var字)
{
单词
if(字长
很高兴知道为什么它必须只有2个元素,而不是单词的数量?
你要找什么算法吗?还是只想将所需的最少文本组合在一起
很高兴看到你为什么需要这个。你可以用空格分隔你的单词 e、 g:
var words = 'George is nice'
words = words.split(' ')
然后遍历数组并比较字符串长度。
举例来说
var concat = ''
for (var word in words)
{
word = words[word]
if (word.length < words[word - 1] )
{
concat += word
}
}
var concat=''
for(字中的var字)
{
单词
if(字长
很高兴知道为什么它必须只有2个元素,而不是单词的数量?
你要找什么算法吗?还是只想将所需的最少文本组合在一起
很高兴看到您为什么需要它。您可以使用
indexOf
,第二个参数作为字符串长度的一半。这样,indexOf
将在提供的索引之后搜索匹配字符串的下一个索引
var str=“Thisasdfasdfasdfasdfasdf是一个示例字符串”,
len=str.长度;
var ind=str.indexOf(“”,数学楼层(str.length/2)-1);
ind=ind>0?ind:str.lastIndexOf(“”);
var str1=str.substr(0,ind),
str2=str.substr(ind);
编写(str1+'
'+str2)
您可以使用indexOf
,第二个参数作为字符串长度的一半。这样,indexOf
将在提供的索引之后搜索匹配字符串的下一个索引
var str=“Thisasdfasdfasdfasdfasdf是一个示例字符串”,
len=str.长度;
var ind=str.indexOf(“”,数学楼层(str.length/2)-1);
ind=ind>0?ind:str.lastIndexOf(“”);
var str1=str.substr(0,ind),
str2=str.substr(ind);
编写(str1+'
'+str2)代码>您可以尝试像这样的拆分器
函数拆分(str){
var len=str.length,
mid=数学楼层(len/2);
var left=mid-str.substring(0,mid).lastIndexOf(“”),
右=str.indexOf(“”,中间)-中间;
var ind=中间+(左<右?-左:右);
返回[str.substr(0,ind),
str2=str.substr(ind)
];
}
var部分=拆分(“123-456 3-5-asldfkjas kdfasdfasd fjas”);
log(部分[0]);
log(第[1]部分)代码>
您可以尝试像这样的拆分器
函数拆分(str){
var len=str.length,
mid=数学楼层(len/2);
var left=mid-str.substring(0,mid).lastIndexOf(“”),
右=str.indexOf(“”,中间)-中间;
var ind=中间+(左<右?-左:右);
返回[str.substr(0,ind),
str2=str.substr(ind)
];
}
var部分=拆分(“123-456 3-5-asldfkjas kdfasdfasd fjas”);
log(部分[0]);
log(第[1]部分)代码>
你可以像这样计算单词数,然后拆分文本。计算单词数,然后在总单词数的一半处拆分,在空白空格Ziki检查中,也可以看到@Tushar两个都不使用此示例:“thisasdfasdfasdfasdfasdfasdf是一个示例字符串”这个问题有这么多答案真是不可思议。这是一个很小的问题,OP甚至没有说他尝试了什么以及他遇到了什么困难。你可以像这样计算单词,然后拆分文本。计算单词,然后拆分为总单词的一半,在空白空格中Ziki检查,请参见@Tushar Due不使用此示例:“Thisasdfasdfasdfasdfasdf是一个示例字符串”这个问题有这么多答案,真是不可思议。这是一个很小的问题,OP甚至没有说他尝试了什么,他遇到了什么困难。我需要在两个地方保存他们来展示他们,但是他们会有相同的长度。我需要在两个地方保存他们来展示他们,但是他们会有相同的长度length@ArunPJohny感谢您指出,添加ind=ind>0?ind:str.lastIndexOf(“”)代码>将解决问题problem@Tushar如果我需要将其拆分为3、4或其他元素,该怎么办?嘿@ArunPJohny,请检查更新的答案,花了一些时间,但我已经完成了!耶!,不完美但很接近:)@ArunPJohny感谢您指出,添加ind=ind>0?ind:str.lastIndexOf(“”)代码>将解决问题problem@Tushar如果我需要将其拆分为3、4或其他元素,该怎么办?嘿@ArunPJohny,请检查更新的答案,花了一些时间,但我已经完成了!耶!,不完美但接近:)