网络建站 响应式网站国内做化妆刷的比较好的网站
news/
2025/9/24 2:29:24/
文章来源:
网络建站 响应式网站,国内做化妆刷的比较好的网站,微信公众平台制作网站,排名优化服务本文章是对官方题解的补充说明 原题链接#xff1a;2288. 价格减免 思路
由题目中的“单词之间用单个空格分隔”和 “如果单词的形式为美元符号后跟着一个非负实数#xff0c;那么这个单词就表示一个 价格 。”
可知#xff1a;
首先要通过 ‘space’把原字符串进行切分2288. 价格减免 思路
由题目中的“单词之间用单个空格分隔”和 “如果单词的形式为美元符号后跟着一个非负实数那么这个单词就表示一个 价格 。”
可知
首先要通过 ‘space’把原字符串进行切分然后再通过判断每个子串的首字符是否为‘$’以及便利其中是否存在非数字字符来实现完整的代码。 而我存在的问题
拆开好说但是如何合并呢
class Solution {public String discountPrices(String sentence, int discount) {double d 1 - discount / 100.0;// 先通过空格划分单词再通过$符号寻找符合条件的价格进而再操作String[] a sentence.split( );for (int i 0; i a.length; i ) {if (check(a[i])) {a[i] String.format($%.2f, Long.parseLong(a[i].substring(1)) * d);}}return String.join( , a);}public boolean check(String str) {if (str.length() 1 || str.charAt(0) ! $) {return false;}char[] s str.toCharArray();for (int i 1; i s.length; i ) {if (!Character.isDigit(s[i])) {return false;}}return true;}
}
细节
Long.parseLong(String s) 作用将字符串解析为 long 类型的整数。 使用场景当你确定字符串表示一个有效的整数时可以使用这个方法将字符串转换为 long 类型。 示例 String numberStr 12345;
long number Long.parseLong(numberStr); // 结果为 12345
substring(int beginIndex) 作用返回一个新的字符串它是此字符串的子字符串。 使用场景当你需要从字符串的某个特定位置开始提取子字符串时可以使用这个方法。 示例 String str $100;
String subStr str.substring(1); // 结果为 100
Character.isDigit(char ch) 作用确定指定的字符是否为数字字符。 使用场景当你需要检查一个字符是否为数字时可以使用这个方法。 示例 char ch1 5;
boolean isDigit1 Character.isDigit(ch1); // 结果为 truechar ch2 a;
boolean isDigit2 Character.isDigit(ch2); // 结果为 false
String.format(String format, Object... args) 作用使用指定的格式字符串和参数返回格式化后的字符串。 使用场景当你需要创建一个格式化字符串时可以使用这个方法。常见的格式化占位符有 %d (整数), %f (浮点数), %s (字符串) 等等。 示例 double value 1.2345;
String formatted String.format(%.2f, value); // 结果为 1.23
结合示例代码
在你的代码中以下表达式
a[i] String.format($%.2f, Long.parseLong(a[i].substring(1)) * d); a[i].substring(1)提取单词中 $ 符号之后的部分例如将 $100 转换为 100。 Long.parseLong(a[i].substring(1))将字符串 100 解析为长整型数值 100。 Long.parseLong(a[i].substring(1)) * d将解析后的长整型数值乘以折扣系数 d得到折扣后的价格。 String.format($%.2f, ...)将折扣后的价格格式化为保留两位小数的字符串并加上 $ 符号例如将 50.0 转换为 $50.00。
代码分析
class Solution {public String discountPrices(String sentence, int discount) {double d 1 - discount / 100.0;// 先通过空格划分单词再通过$符号寻找符合条件的价格进而再操作String[] a sentence.split( );for (int i 0; i a.length; i ) {if (check(a[i])) {a[i] String.format($%.2f, Long.parseLong(a[i].substring(1)) * d);}}return String.join( , a);}public boolean check(String str) {if (str.length() 1 || str.charAt(0) ! $) {return false;}char[] s str.toCharArray();for (int i 1; i s.length; i ) {if (!Character.isDigit(s[i])) {return false;}}return true;}
} check(a[i])检查单词是否是一个价格单词。首先确保单词长度大于1且以 $ 开头然后检查 $ 之后的每个字符是否都是数字。 a[i] String.format($%.2f, Long.parseLong(a[i].substring(1)) * d);对于每个符合条件的价格单词去掉 $ 符号解析为长整型计算折扣后价格并格式化为保留两位小数的字符串。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914602.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!