gpt4 book ai didi

java - 将字符串从数组列表转换为另一个字符串

转载 作者:行者123 更新时间:2023-12-01 18:36:50 25 4
gpt4 key购买 nike

假设我有以下 Arraylist:

1. [123] [456] [789]
2. [134] [105] [455]

并且必须遵守规则:

[123] [456] = cat
[789] = dog
[134] = mouse
[105] [455] = snake

从 Arraylist 1 开始,我想形成新的以下数组列表:

  1. 猫狗
  2. 老鼠蛇

有什么办法可以做到这一点吗?我目前还没有找到任何用于字符串到字符串转换的内容。

最佳答案

这里有一种方法可以做到这一点。这只是众多可能的方法之一;也许还有比这更好的方法。您可能会认为这只是如何执行此操作的一个指标。有趣的类是Rules 类。这将转换规则实现为 java.util.Pattern 实例,并且其中的 apply() 方法执行转换。

如果您有除 String 之外的其他类型的输入数组,您可以遵循一般思路,但基于 Pattern 的实现可能并不总是有效。

public class ListOfStringsToAnother{

public static void main( String[] args ){
List<String> inputStrings = getInputArray();

List<String> output = new ArrayList<>();
for( String input : inputStrings ) {
output.add( Rules.INSTANCE.apply( input ) );
}

output.forEach( System.out::println );
}

private static List<String> getInputArray(){
List<String> list = Arrays.asList( "[123] [456] [789]", "[134] [105] [455]" );
return list;
}

private static final class Rules{
static Map<String, Pattern> patterns = new HashMap<>();
static Rules INSTANCE = new Rules();

private Rules() {
patterns.put( "cat", Pattern.compile( "\\[123\\] \\[456\\]", Pattern.CASE_INSENSITIVE ) );
patterns.put( "dog", Pattern.compile( "\\[789\\]", Pattern.CASE_INSENSITIVE ) );
patterns.put( "mouse", Pattern.compile( "\\[134\\]", Pattern.CASE_INSENSITIVE ) );
patterns.put( "snake", Pattern.compile( "\\[105\\] \\[455\\]", Pattern.CASE_INSENSITIVE ) );
}

String apply( String input ) {
/* Apply your rules here. Change this logic based on the outcome you need. */
for( Entry<String, Pattern> e : patterns.entrySet() ) {
Pattern p = e.getValue();
input = p.matcher( input ).replaceAll( e.getKey() ); //This replaces the original strings in the input
}

return input;
}
}
}

关于java - 将字符串从数组列表转换为另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60018266/

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