首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到以准确单词开头的字符串

如何找到以准确单词开头的字符串
EN

Stack Overflow用户
提问于 2013-04-09 13:16:22
回答 3查看 174关注 0票数 0

我在gwt上有一个带有GUI的应用程序。使用此gui,我想要更改(这是一个子问题:如何更好地更改.properties文件(我知道如何使用org.apache.commons.configuration读取属性,但不知道如何编辑(作为字符串或如何.)).properties文件。例如:我编写了以下.properties文件:

代码语言:javascript
复制
################################################################################
# User permissions                                                             #
################################################################################

users = admin, root, guest
users.admin.keywords = admin
users.admin.regexps = test-5, test-7

users.root.keywords = root
users.root.regexps = *

users.guest.keywords = guest
users.guest.regexps = *

那么,如何为管理添加keywords呢?

UPD:这里是我使用的配置类,我想在其中更改配置文件:

代码语言:javascript
复制
    public class Config {

    private static final Config ourInstance = new Config();
    private static final CompositeConfiguration prop = new CompositeConfiguration();

    public static Config getInstance() {
        return ourInstance;
    }

    public Config(){
    }

    public synchronized void load() {
        try {
            prop.addConfiguration(new SystemConfiguration());

            System.out.println("Loading /rules.properties");
            final PropertiesConfiguration p = new PropertiesConfiguration();
            p.setPath("/home/mikhail/bzrrep/DLP/DLPServer/src/main/resources/rules.properties");
            p.load();
            prop.addConfiguration(p);

        } catch (ConfigurationException e) {
            e.printStackTrace();
        }

        final int processors = prop.getInt("server.processors", 1);

        // If you don't see this line - likely config name is wrong
        System.out.println("Using processors:" + processors);
    }

    public void setKeyword(String customerId, String keyword){
        prop.setProperty("users." + customerId + ".keywords", prop.getProperty("users." + customerId + ".keywords") + ", " + keyword);
        prop.
    }

    public void setRegexp(String customerId, String regexp)
    {}
}
EN

回答 3

Stack Overflow用户

发布于 2013-04-09 13:19:47

试着跟随

代码语言:javascript
复制
Properties prop = new Properties();

        try {
            //set the properties value
            prop.setProperty("users.guest.keywords", "keyword");
            prop.setProperty("users.guest.regexps", "regexps");    
            prop.store(new FileOutputStream("config.properties"), null);

        } catch (IOException ex) {
            ex.printStackTrace();
        }

希望它能帮上忙

票数 1
EN

Stack Overflow用户

发布于 2013-04-09 13:39:13

负载道具

代码语言:javascript
复制
void getPropertiesFromFile( Properties props, String fileName )
{
    try {
        File file = new File( fileName ) ;
        if (!file.exists())
            return ;

        FileInputStream in = new FileInputStream( file ) ;

        try {
            props.load( in ) ;
        } finally {
            in.close() ;
        }
    } catch (Exception e) {
    }
}

注意:您可能希望不是从文件中加载它们,而是使用classLoader.getResource()加载它们;代码将略有变化。

然后,遍历名称并找到所需的内容。

代码语言:javascript
复制
for (String name : props.keys) {
   if (name.startWith("users.admin.")) {
       String value = props.get(name);
       ...
   }
}

如果要在迭代期间修改道具,则应按以下方式包装props.keys

代码语言:javascript
复制
for (String name : new HashSet(props.keys)) {

做完之后,把它们储存起来

代码语言:javascript
复制
    FileOutputStream fos = null;
    try {
        File file = new File("abc");
        fos = new FileOutputStream(file);
        props.store(fos, null);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (fos != null) {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2013-04-09 13:21:08

回答你原来的问题。

代码语言:javascript
复制
boolean String.startsWith(<prefix>) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15902998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档