java - 有没有一种方法可以在 Java 中更改具有相同字符的多个字符串?

标签 java replace transpose

我正在开发一个应用程序,我必须从一个音阶移调到另一个音阶。

例如:

cdefgab 为 gabcdef

c 为 g,d 为 a,e 为 b,f 为 c,g 为 d,a 为 e b 为 f

使用 .replace("c","g").replace("d","a").replace("e","b")... ###

但是输出是错误的,因为当第一个 c 被替换为 g , g 被替换为 d

代码如下:

    String tune = "cdef gabc";        
    System.out.println(""+tune.replace("c","g")
                                            .replace("d","a")
                                            .replace("g","d"));

当前输出: 达夫达布德

要求的输出: 盖夫达布格

我希望第一个字符串 'c' 为 'g' 而不是 'd'

最佳答案

试试这个

System.out.println(tune.replace("a", "\uFFFF")
                       .replace("d", "a")
                       .replace("g", "d")
                       .replace("c", "g")
                       .replace("f", "c")
                       .replace("b", "f")
                       .replace("e", "b")
                       .replace("\uFFFF", "e"));

注意:\uFFFF 根据定义不是有效字符,因此它不会出现在有效字符串中。

关于java - 有没有一种方法可以在 Java 中更改具有相同字符的多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24514940/

相关文章:

java - Kotlin:getFusedLocationProviderClient崩溃

java - DecimalFormatting double 的语法

java - 简单 Intent - jUnit 测试失败

javascript - 用javascript中的递增数字替换HTML文本

regex - 如果换行符后跟一个字符串,则删除换行符 (\n) - 使用 SED

python - numpy 数组的时髦行为

java - 在 Videoview 中旋转实际的视频缓冲区

t-sql - TSQL : transpose last 3 columns into rows?

r - R中的转置函数不是转置

javascript - javascript 中的 Value.replace 不允许特定字符