Java Lastindexof()不是';行不通
例如,我在文本文件中有两行数据: 你好早晨 你好晚上 我只想说最后一句话。我使用了这段代码,但它没有显示晚上而是显示嗨!晚上searchName在哪里Java Lastindexof()不是';行不通,java,substring,Java,Substring,例如,我在文本文件中有两行数据: 你好早晨 你好晚上 我只想说最后一句话。我使用了这段代码,但它没有显示晚上而是显示嗨!晚上searchName在哪里 try{ BufferedReader in = new BufferedReader(fr); try { while((s=in.readLine())!=null){ countline++;
try{
BufferedReader in = new BufferedReader(fr);
try {
while((s=in.readLine())!=null){
countline++;
String[] words=s.split(" ");
for(String word:words){
if(word.contains(searchName)){
System.out.println(words);
int lastSpace=word.lastIndexOf(" ");
String addres=word.substring(lastSpace+1,word.length());
System.out.println(addres);
}
}
}
in.close();
} catch (IOException e) {
System.out.println("No address found for your name..We are updating");
}
}finally {
}
您可能需要阅读
split()
的API
如果你想知道一行的最后一个字,你已经知道了。它会在
words[words.length - 1].
如果您仍然想使用lastIndexOf()
,您可以,但不必在这些元素上使用split()
,然后使用循环,您只需要
String addres = word.substring(word.lastIndexOf(" ") + 1);
但你不能两者兼得。当前,通过使用
split()
将字符串切碎,然后在切碎的字符串的每个部分中查找空格,可以从字符串中删除所有空格 看起来像是家庭作业问题。所以我不会提供确切的答案
下面的代码应该解释如何正确使用split()并获取所有值:
String in = "Hello! Morning Hi! Evening";
String[] words = in.split(" ");
for (int i = 0; i < words.length; i++) {
if(words[i].equals(yourSearchString)){
System.out.println("Your Search String" + words[i]);
}
}
// to get the last word
String lastWord = words[words.length - 1];
String in=“你好!早上好!晚上好”;
字符串[]字=in.split(“”);
for(int i=0;i
我不明白为什么我的单词没有用空格分隔。后来我注意到,我在这些单词之间使用了tab。int lastSpace=word.lastIndexOf(“\t”);这起作用了