当前位置: 首页 > 知识库问答 >
问题:

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

林涵映
2023-03-14

假设我有以下数组列表:

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

并且必须遵守规则:

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

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

    <李>猫狗 <李>鼠蛇

无论如何都可以这样做。我目前还没有找到任何字符串到字符串转换的内容。

共有1个答案

梁池暝
2023-03-14

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

如果您有除< code>String以外的其他类型的输入数组,您可以遵循一般的想法,但是基于< code>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;
        }
    }
}
 类似资料:
  • 我正在研究将字符串从一个字符集转换为另一个字符集,阅读了很多关于它的示例,最终找到了下面的代码,这对我来说很好,作为一个字符集编码的新手,我想知道,这是否是正确的方法。 要将字符串从ASCII转换为EBCDIC,我必须执行以下操作: 要将EBCDIC转换为ASCII,我必须:

  • 我对任何编程都非常陌生,所以请原谅我的无知,因为我不知道如何做一些看起来很简单的事情。 我所要做的就是获取任何字符串数组(称之为名称),比如: 并将其从列表中删除,并将其转换为字符串: 我似乎无法理解这一点,也找不到类似的帖子。

  • 问题内容: 我有一个字符串: 我想要一个简单的方法将其转换为实际的。 我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。 我试着做 但是我明白了 手动清理边缘并去除斜线似乎是我做错了什么。 我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。 即转换为 解决方案 (感谢@Eric D) 问题答案: 将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swi

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 问题内容: 如何将已作为字符串读取的列转换为数组列?即从下面的模式转换 至: 如果可能,请同时共享scala和python实现。在相关说明中,从文件本身读取时如何处理它?我有约450列的数据,我想以这种格式指定的列很少。目前,我正在pyspark中阅读以下内容: 谢谢。 问题答案: 有各种各样的方法, 最好的方法是使用函数并强制转换为 您也可以创建简单的udf来转换值 希望这可以帮助!

  • 问题内容: 我在pandas数据框中的某个列的类型有问题。基本上,该列以字符串形式保存在csv文件中,我想将其用作元组,以便能够将其转换为数字列表。接下来是一个非常简单的csv: 如果使用函数“ read_csv”加载它,则会得到字符串列表。我试图转换为列表,但是得到了字符串的列表版本: 返回: 关于如何做到这一点的任何想法吗? 谢谢。 问题答案: 您可以使用,这将给您一个元组: 如果确实需要列表