Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能得到相同的结果;tr//”等;java中perl中的运算符_Java_Perl - Fatal编程技术网

我怎样才能得到相同的结果;tr//”等;java中perl中的运算符

我怎样才能得到相同的结果;tr//”等;java中perl中的运算符,java,perl,Java,Perl,实现perl操作符的最快方法是什么 例如,如果我有一个字符串“ATGCATGC”,并且我使用perltr/GTCA/CAGT/,那么我将得到“TACGTACG” 只有一个java函数可以做到这一点吗?使用标准java无法做到这一点。然而,有一种方法 这样使用: import org.apache.commons.lang.StringUtils; StringUtils.replaceChars("ATGCATGC", "GTCA", "CAGT"); // "TACGTACG" 祝你的遗传

实现perl操作符的最快方法是什么

例如,如果我有一个字符串
“ATGCATGC”
,并且我使用perl
tr/GTCA/CAGT/
,那么我将得到
“TACGTACG”


只有一个java函数可以做到这一点吗?

使用标准java无法做到这一点。然而,有一种方法

这样使用:

import org.apache.commons.lang.StringUtils;

StringUtils.replaceChars("ATGCATGC", "GTCA", "CAGT"); // "TACGTACG"
祝你的遗传学研究好运:)

你从

perldoc -f tr
上面说:

The transliteration operator...
现在您知道了一个好的搜索词,请输入:

java transliteration
进入google.com的小盒子

这首歌看起来很有趣:

jtr, a transliteration library for Java
jtr.sourceforge.net
jtr is a small Java library that emulates the 
Perl 5 "transliterate" operation on a given string. 
Most Perl 5 features are supported, including all the standard ...

在Java中没有内置函数来完成这项工作。用另一个字符替换每个字符的一个真正基本的功能是:

public static String transliterate(String str, String source, String target) {
    StringBuilder builder = new StringBuilder();
    for(int i = 0; i < str.length(); i++) {
        char ch = str.charAt(i);
        int j = -1;
        for(int k = 0; k < source.length(); k++) {
            if(source.charAt(k) == ch) {
                j = k;
                break;
            }
        }
        if(j > -1 && j < target.length()) {
            builder.append(target.charAt(j));
        } else {
            builder.append(ch);
        }
    }
    return builder.toString();
}

public static void main(String[] args) {
     System.out.println(transliterate("ABCDDCBDA", "ABCD", "1234"));
}
公共静态字符串音译(字符串str、字符串源、字符串目标){
StringBuilder=新的StringBuilder();
对于(int i=0;i-1&&j
正如其他人所评论的,Apache Commons StringUtils将为您完成这项工作。不过,这种方法也将如此:

    public static String replaceChars(final String str, final String sourceChars, final String replaceChars) {

    int ix;
    final StringBuilder sb = new StringBuilder(str);
    for (int i = 0 ; i < sb.length() ; i++) {
        if ((ix = sourceChars.indexOf(sb.charAt(i))) != -1) {
            sb.replace(i, i + 1, replaceChars.substring(ix, ix + 1));
        }
    }

    return sb.toString();
}
publicstaticstringreplaceChars(finalstringstr,finalstringsourcechars,finalstringreplaceChars){
int ix;
最终StringBuilder sb=新StringBuilder(str);
for(int i=0;i
cool,如何导入apache commons lang库?导入apache.lang.*?只需导入单个的
StringUtils
类。我可以从本地终端像这样导入这个库吗>下载apache commons库,并将它放在类路径中以执行命令,如下所示:
java-cp yourproject.jar;commons-lang.jar com.yourcompany.YourClass