在這裏我有下面的代碼。這個想法是,如"R#GUPW*UIOPW#WERTY*RT#LLOPPPPER*CVW"
短語返回一個模式像返回相同的字符串中找到的子串
"#GUPW*"
"#WERTY*"
"#LLOPPPPER*"
是從與#開頭,以*結尾那句返回所有的子字符串。所以在這個短語中有3個。
import java.io.*;
public class Pattern {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String phrase = "R#GUPW*UIOPW#WERTY*RT#LLOPPPPER*CVW";
String found ="";
for (int y = 0; y<phrase.length(); y++)
{
found = found + phrase.substring(phrase.indexOf("#"), phrase.indexOf("*"));
}
System.out.println(found);
}
}
,但我的代碼返回 "#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW#GUPW"
我怎麼能返回這些子與#開始,從我的短語*結束。
"#GUPW*"
"#WERTY*"
"#LLOPPPPER*"
'indexOf'時沒有更多的參數調用總是從字符串的開頭searchs。所以它總是會找到「#GUPW」 – Clayn
但這並不明確。您正在遍歷每個字符,但每次都從頭開始使用indexOf方法。如果你這樣迭代,檢查當前字符,如果它是'#'或不。或者只是搜索每個'#'並做你自己的事情。 PS:你的例子不正確,因爲你缺少'*',或者我不明白 – AxelH
問自己,爲什麼你在循環中有y變量?你沒有在任何地方使用它?你希望從程序中獲得獨特的phrase.length()打印輸出嗎?進一步的提示: - 使用while循環,將索引存儲到變量中,以便您可以在更多的子字符串調用中使用它們,並閱讀有關2參數indexOf方法的文檔。 –