查找输入字符串java中最后一个字符的索引?

6gpjuf90  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(448)

我试图找出如何在使用scanner类获取字符串的同时,在字符串变量的第一个单词中找到最后一个字符的索引。在我的代码中,我需要使用一个字符串作为全名,并找到名字中最后一个字符的索引。
到目前为止我做了这个:

String fullName;

Scanner s = new Scanner(System.in);

System.out.println("Insert full name: "); //For example: Joseph Adams.

fullName = s.nextLine();

int position = fullName.indexOf(" ");

System.out.println(fullName.substring(0, position)); 
//I need to find the index of h in Joseph.
vd8tlhqk

vd8tlhqk1#

如果输入名称中有空格,则空格前的字符索引将被删除 position - 1 ; 否则(即 fullName.indexOf 退货 -1 ),您可以根据需要打印输入名称中最后一个字符的索引和/或进行一些处理(例如打印一些消息)。
演示:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("Insert full name: "); // For example: Joseph Adams.
        String fullName = s.nextLine();
        int position = fullName.indexOf(" ");

        if (position != -1) {
            System.out.println("The index of the character just before space in the input name is " + (position - 1));
        } else {
            System.out.println("There is no space in the input name.");
            System.out.println("The index of the last character in the input name is " + (fullName.length() - 1));
        }
    }
}

示例运行:

Insert full name: Joseph Adams
The index of the character just before space in the input name is 5

另一个示例运行:

Insert full name: Joseph
There is no space in the input name.
The index of the last character in the input name is 5
raogr8fs

raogr8fs2#

字符串中最后一个字符的索引是 str.length() - 1 . 例如,要查找 h"Joseph" :

public static int indexOfLast(String str){
   return str.length() - 1;                
}

长度 "Joseph"6 但索引处没有字符 6 (字符串与数组一样,从索引处的第一个元素开始 0 ). 所以,我们减去 1 得到 5 ,这是字符串中的最后一个字符。这样做:

String name = "Joseph";
name.charAt(indexOfLast(name));

会回来的 h .

gpfsuwkq

gpfsuwkq3#

查找第一个单词最后一个字符的索引
试试这个。
第一种方法从第一个空格的索引中减去一个,这个空格就是字母 h .
第二种方法将字符串分成两部分。第[0]部分是 joseph . 所以 h 等于字符串的长度减去1。

String str = "Joseph Adams";
int index = str.indexOf(" ");
if(index < 0) {
   index = str.length();
}
System.out.println(index-1);

// or

String[] parts = str.split("\\s+");
int len = parts[0].length();
System.out.println(len-1);

印刷品

5
5

相关问题