您现在的位置是:主页 > news > 什么网站可以兼职做设计/引擎优化搜索

什么网站可以兼职做设计/引擎优化搜索

admin2025/5/20 19:14:05news

简介什么网站可以兼职做设计,引擎优化搜索,手机网站开发学习视频,个人房产备案查询网上查询先推荐2篇基础的文章: Java 正则表达式 Java正则表达式 匹配中文字符 在实际开发过程中,我需要将类似于这类文字:“本月洗衣粉打75折的吆...”、“方便面可以打折么?”、“皮衣…

什么网站可以兼职做设计,引擎优化搜索,手机网站开发学习视频,个人房产备案查询网上查询先推荐2篇基础的文章: Java 正则表达式 Java正则表达式 匹配中文字符 在实际开发过程中,我需要将类似于这类文字:“本月洗衣粉打75折的吆...”、“方便面可以打折么?”、“皮衣…

 

      先推荐2篇基础的文章:   Java 正则表达式         Java正则表达式 匹配中文字符                                        

 

       在实际开发过程中,我需要将类似于这类文字:“本月洗衣粉打75折的吆...”、“方便面可以打折么?”、“皮衣打9折” 中的打折数字提取出来,并转化成对应的小数。 例如,在文字“本月洗衣粉打75折的吆”,需要将75数字提取出来,并转成0.75 。

 

       根据如上描述,正则表达式的需求是: 根据"x折"提取"x折"中的'x',并将'x'转化成小数。

 

       通过下列的2个函数,我实现了该需求。在这里,值得注意的是: 当出现打“7折”时, 将“7”转换成小数 0.7,直接使用 num = Integer.parseInt(“7”)*0.1, 得到的值会出现:  0.7000000000000001 ,出现这类精度偏移的情况,我也很苦恼,不知道是怎么回事,如果有小伙伴知道,还望告知,谢谢。

 

package com.test.regex;import java.text.DecimalFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test4 {/*** 通过正则表达式,提取"x折"中的'x',并将 x转成对应的小数。      2018/10/24 10:17       * */public static void main(String[] args) {Double num = null;String patternStr = "\\d{0,3}折";  // 正则表达式Pattern pattern = Pattern.compile(patternStr);// String content ="我想打个折000啊啊啊";  // Double类型值为:nullString content ="我想打个5折000啊啊啊";  // Double类型值为:0.5// String content ="我想打个75折000啊啊啊";  // Double类型值为:0.75// String content ="我想打个123456折000啊啊啊";  // Double类型值为:0.456Matcher matcher = pattern.matcher(content);if (matcher.find()) {int start = matcher.start();int end = matcher.end();	String subContent = content.substring(start, end-1);System.out.println("String类型值为:"+subContent);num = StringToDouble(subContent);System.out.println("Double类型值为:"+num);} else {System.out.println("Double类型值为:"+ "not found   @author: dear_Alice_moon");}// return num;}/*** 将  String值  转变成 Double小数值      2018/10/24 10:17                 * @param content* @return*/public static Double StringToDouble(String content) {//String content = "3";Double num = null;if (content != null && content.length() == 1) {num = Double.parseDouble(content)*0.1;   System.out.println("格式未控制前,num值为:" + num);DecimalFormat df = new DecimalFormat("0.0");String newNum = df.format(num); num = Double.parseDouble(newNum);  // 0.3} else if (content != null && content.length() == 2) {num = Double.parseDouble(content)*0.01;  // 0.77} else if (content != null && content.length() == 3) {num = Double.parseDouble(content)*0.001;  // 0.888}return num;}}

 

   运行结果如下所示: