我是编程(上课)的新手,我不知道如何完成这项任务。
“忽略大小写,在输入中找到最后一个'a'并删除它后面的所有字符。如果单词中没有'a',则删除除前两个字符之外的所有字符(提醒) :不要使用if语句或循环。)在现在截断的单词的末尾,添加一个数字,该截断单词的长度是原始单词长度的百分比;此百分比应四舍五入到最接近的单词整数值。“
我对百分比部分会很好,但我不确定如何做第一部分。
如何在最后一次出现'a'后删除?
如果没有'a',如何在不使用if语句的情况下在前两个字母后将其剪掉?
我假设使用字符串操作和各种子字符串完成它,但我不确定应该如何制作子字符串的标准。
记住,Java新手!我还不知道很多花哨的编码技术。
谢谢!
答案 0 :(得分:3)
String#toLowerCase
- 从String
String#lastIndexOf
会告诉您指定的String
最后一次出现的位置,如果没有出现,将返回-1
,这很重要。String#subString
将允许您根据当前String
String
Math#max
,Math#min
答案 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);