gpt4 book ai didi

Javascript交换字符串中的字符

转载 作者:行者123 更新时间:2023-12-03 07:16:40 25 4
gpt4 key购买 nike

假设我有一个像 "abcabcabc" 这样的字符串,并且我希望交换 'a's 和 'b's 的位置,以便最终得到 "bacbacbac" 。对此最优雅的解决方案是什么? (为了这个问题,我特此将“优雅”定义为快速且易读。)
我想出了

"abcabcabc".replace( /[ab]/g, function( c ){ return { 'a': 'b', 'b': 'a' }[ c ] } )
我既不认为快速也不可读。但现在我想知道是否有更好的方法呢?
编辑:字符可以在任何位置。所以答案应该适用于“xyza123buvwa456”(也应该是“xyzb123auvwb456”。
EDIT2:“交换”似乎是错误的词。将所有 a 替换为 b 并将所有 b 替换为 while 两者都是单个字符。

我扔了几个其他的:
"abcabcabc".replace( 'a', '_' ).replace( 'b','a' ).replace( '_', 'b' )

"abcabcabc".replace( /[ab]/g, function( c ){ return "ba".charAt( c.charCodeAt()-'a'.charCodeAt() ); } )

"abcabcabc".replace( /[ab]/g, function( c ){ return "ab".charAt( "ba".indexOf( c ) ) } )
我最终使用了 Mark C. 答案的修改版本:
"abcabcabc".replace( /[ab]/g, c => c == 'a' ? 'b' : 'a' )

最佳答案

尝试这个 :

str.replace(/[ab]/g, function($1) { return $1 === 'a' ? 'b' : 'a' })

例子:

console.log("abcabcabc".replace(/[ab]/g, function($1) { return $1 === 'a' ? 'b' : 'a' }))

关于Javascript交换字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com