从regex在Android中制作对象



我正在编写一个Android应用程序,它可以使用正则表达式解析字符串。假设它得到

'Tis an example image of a beaver {[beaver.jpg]} having an afternoon tea.

我想要得到的是带有'Tis an example image of a beaver的TextView、ImageView beaver.jpg和另一个TextView having an afternoon tea.

在读取这样的字符串并使用regex进行解析后,如何(如果可能的话)创建对象?

您的自定义视图类应该有一个构造函数,它接受三个String参数,一个用于图像的路径,一个用来在图像之前显示文本,另一个用于在图像之后显示文本。

class YourView { 
    public YourView(String imgPath, String beforeImg, String afterImg){ 
         //add TextView for text before image 
         //add ImageView for image 
         //add TextView for text after image 
    }
}

如果您的图像始终包含在{[ ]}中,则正则表达式(.+)\{\[(.+)\]\}(.+)将捕获组0中{[之前的所有内容,组1中{[}]之间的所有内容(即图像路径),以及组2中}]之后的所有内容。

如果你使用Java Matcher,你就可以实现你想要的结果,比如:

    String pre, path, post; 
    while (matcher.find()){ 
        pre = matcher.group(0);
        path = matcher.group(1);
        post = matcher.group(2); 
        YourView view = new YourView(path, pre, post); 
        //add view 
    }

请注意,如果图像位于文本的末尾或开头,您只需在此处传递空字符串作为第三个/第一个参数,这将导致创建空的TextViews,这应该是无害的(或者您可以进行检查,而不为空字符串创建一个)。

也就是说,还要注意,上面的代码是未经测试的(但应该会给你一个大致的想法),而且我是一名Java程序员,在Android方面几乎没有经验,所以如果有Android特定的原因,请告诉我这不起作用

相关内容

  • 没有找到相关文章

最新更新