鉴于M_16x16_a_b_c可以包含任何数字来代替a,b和c:我想知道什么是使用通配符搜索方法的最佳方式,以便我可以通过执行类似的操作来搜索任何可能的字符串searchfor( “M_16x16_ _ _ *”)”
答案 0 :(得分:0)
您需要使用正则表达式。
Here是一个很好的教程。
答案 1 :(得分:0)
正则表达式是一种通用的解决方案。
对于您的特定示例,您可以尝试以下操作,这可能会提供更好的性能。
String s; // Assign somewhere
boolean hit = s.startsWith("M_16x16_")
答案 2 :(得分:0)
尝试这样的事情
// URL that generated this code:
// http://txt2re.com/index-java.php3?s=M_16x16_111_222_333&-13&-42&-15&-26&-14&-16&-27&-43&2&-44&3&-45&4&-5&-6
import java.util.regex.*;
class Main
{
public static void main(String[] args)
{
String txt="M_16x16_111_222_333";
String re1="(M)"; // Any Single Word Character (Not Whitespace) 1
String re2="(_)"; // Any Single Character 1
String re3="(16)"; // Integer Number 1
String re4="(1)"; // Any Single Digit 1
String re5="(6)"; // Any Single Digit 2
String re6="(x16)"; // Alphanum 1
String re7="(1)"; // Any Single Digit 3
String re8="(6)"; // Any Single Digit 4
String re9="(_)"; // Any Single Character 2
String re10="(\\d+)"; // Integer Number 2
String re11="(_)"; // Any Single Character 3
String re12="(\\d+)"; // Integer Number 3
String re13="(_)"; // Any Single Character 4
String re14="(\\d+)"; // Integer Number 4
Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6+re7+re8+re9+re10+re11+re12+re13+re14,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(txt);
if (m.find())
{
String w1=m.group(1);
String c1=m.group(2);
String int1=m.group(3);
String d1=m.group(4);
String d2=m.group(5);
String alphanum1=m.group(6);
String d3=m.group(7);
String d4=m.group(8);
String c2=m.group(9);
String int2=m.group(10);
String c3=m.group(11);
String int3=m.group(12);
String c4=m.group(13);
String int4=m.group(14);
System.out.print("("+w1.toString()+")"+"("+c1.toString()+")"+"("+int1.toString()+")"+"("+d1.toString()+")"+"("+d2.toString()+")"+"("+alphanum1.toString()+")"+"("+d3.toString()+")"+"("+d4.toString()+")"+"("+c2.toString()+")"+"("+int2.toString()+")"+"("+c3.toString()+")"+"("+int3.toString()+")"+"("+c4.toString()+")"+"("+int4.toString()+")"+"\n");
}
}
}
//-----
// This code is for use with Sun's Java VM - see http://java.sun.com/ for downloads.
//
// Paste the code into a new java application or a file called 'Main.java'
//
// Compile and run in Unix using:
// # javac Main.java
// # java Main
//