Java新手:剪掉一根绳子?

时间:2015-02-16 06:14:39

标签: java string

我是编程(上课)的新手,我不知道如何完成这项任务。

“忽略大小写,在输入中找到最后一个'a'并删除它后面的所有字符。如果单词中没有'a',则删除除前两个字符之外的所有字符(提醒) :不要使用if语句或循环。)在现在截断的单词的末尾,添加一个数字,该截断单词的长度是原始单词长度的百分比;此百分比应四舍五入到最接近的单词整数值。“

我对百分比部分会很好,但我不确定如何做第一部分。

  1. 如何在最后一次出现'a'后删除?

  2. 如果没有'a',如何在不使用if语句的情况下在前两个字母后将其剪掉?

  3. 我假设使用字符串操作和各种子字符串完成它,但我不确定应该如何制作子字符串的标准。

    记住,Java新手!我还不知道很多花哨的编码技术。

    谢谢!

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

鉴于String input,请考虑以下内容作为可能的起点:

    int indexOfSmallA = input.lastIndexOf('a');
    int indexOfBigA = input.lastIndexOf('A');
    int beginIndex = Math.max(indexOfSmallA, indexOfBigA);
    // if not found, begin at 2 or end of input, else begin after last 'a'
    beginIndex = (beginIndex == -1) ? Math.min(2, input.length()) : beginIndex + 1;
    String result = input.substring(beginIndex);

答案 2 :(得分:1)

为了找到'a'或'A'的最后一次出现,你可以使用......

int index = Math.max(str.lastIndexOf('a'),str.lastIndexOf('A'));
index = (index==-1)?Math.min(2,str.length()):index+1;

获得索引后,您可以使用以下内容删除后面的字符...

str.substring(0,index);