Java 基于位置给出m或m值的制作方法
因此,我必须创建一个方法,该方法将返回一个基于m或字符串中的m的值。到目前为止,我有这个Java 基于位置给出m或m值的制作方法,java,methods,Java,Methods,因此,我必须创建一个方法,该方法将返回一个基于m或字符串中的m的值。到目前为止,我有这个 public static int mIndex(String x) { if (x.indexOf('M') >= 0) { return x.indexOf('M'); } if (x.indexOf('m') >= 0) { return x.indexOf('m'); } else { return -1;
public static int mIndex(String x) {
if (x.indexOf('M') >= 0) {
return x.indexOf('M');
}
if (x.indexOf('m') >= 0) {
return x.indexOf('m');
} else {
return -1;
}
}
问题是,如果它是字符串中的第一个,它只返回M。它是否可以检测m或m,然后根据它给出一个值?尝试以下方法:
String s = "MarshmallowmmMaM";
System.out.println("Index of 'M':");
int index = s.indexOf("M");
while (index >= 0) {
System.out.println(index);
index = s.indexOf("M", index + 1);
}
System.out.println("Index of 'm':");
index = s.indexOf("m");
while (index >= 0) {
System.out.println(index);
index = s.indexOf("m", index + 1);
}
输出:
“M”的索引:
0
13
十五
“m”的索引:
5.
11
十二,
对于类似的情况,正则表达式是您的朋友:
public static int mIndex(String x) {
Matcher m = Pattern.compile("[mM]").matcher(x);
if (m.find())
return m.start();
return -1;
}
试验
输出
如果您想检测字母M“upper&lower”每个箱子的第一个位置
公共类主{
公共静态int M_位置=-1;
公共静态int m_位置=-1;
公共静态void mIndex(字符串x){
int i=0;
而(i
您的问题令人困惑。。。详细说明您希望该计划实现的目标。“问题是,如果它在字符串中是第一个,它只返回M”这是一件坏事吗?你想得到'M'或'M'的所有索引吗?我想让程序告诉M或M的位置,以先到者为准。例如,如果我有一个字符串是“kamdkmm”,那么索引将是2,因为它首先到达小写的M,然后它会忽略M之后。
System.out.println(mIndex("kamdkMMM"));
System.out.println(mIndex("KAMDKmmm"));
System.out.println(mIndex("Hello World"));
2
2
-1
public class Main {
public static int M_POSITION = -1;
public static int m_POSITION = -1;
public static void mIndex(String x) {
int i = 0;
while (i < x.length()) {
if (x.charAt(i) == 'M') {
if (M_POSITION == -1)
M_POSITION = i;
} else if (x.charAt(i) == 'm') {
if (m_POSITION == -1)
m_POSITION = i;
}
++i;
}
}
public static void main(String[] args) {
mIndex("adsm");
System.out.println(m_POSITION);
System.out.println(M_POSITION);
}
}