将长字符串转换成对象

将字符串转换成对象

需求:将一串长字符串转换成 集合

字符串例子:

AppUseBean{appName='抖音', useCount=2, useTime='02:05:00', packageName='douyin', firstOpenTime='2023-03-01 12:20:20', lastUsedTime='2023-03-01 14:25:00'},AppUseBean{appName='视频', useCount=2, useTime='02:05:00', packageName='douyin', firstOpenTime='2023-03-01 12:20:20', lastUsedTime='2023-03-01 14:25:00'},AppUseBean{appName='王者', useCount=2, useTime='02:05:00', packageName='douyin', firstOpenTime='2023-03-01 12:20:20', lastUsedTime='2023-03-01 14:25:00'}

对象

@Getter
@Setter
public class AppUseBean {
    @ApiModelProperty(value = "app名字")
    private String appName;
    @ApiModelProperty(value = "次数")
    private Integer useCount;
    @ApiModelProperty(value = "使用时间")
    private String useTime;
    @ApiModelProperty(value = "包名")
    private String packageName;
    @ApiModelProperty(value = "当天第一次使用时间")
    private String firstOpenTime;
    @ApiModelProperty(value = "最后一次使用时间")
    private String lastUsedTime;

    @Override
    public String toString() {
        return "AppUseBean{" +
                "appName='" + appName + '\'' +
                ", useCount=" + useCount +
                ", useTime='" + useTime + '\'' +
                ", packageName='" + packageName + '\'' +
                ", firstOpenTime='" + firstOpenTime + '\'' +
                ", lastUsedTime='" + lastUsedTime + '\'' +
                '}';
    }
}

根据字符串 截取

 public static final List<AppUseBean> perportDataUtil(String appData){
        String[] tests = appData.split("AppUseBean");
        List<AppUseBean> listBean = new ArrayList<>();
        //截取出的数组
        for (String s : tests){
            if(!"".equals(s)){
            	//去除数组中的 大括号
                String d = s.substring(s.indexOf("{")+1,s.indexOf("}"));
                System.out.println("d="+d);
                //再根据 “,” 分割数组
                String[] ss = d.split(",");
                System.out.println("进入A的 for循环");
                AppUseBean bean = new AppUseBean();
                for(String a : ss){
                    System.out.println("a="+a);
                    //替换字符串中存在的空格
                    String g = a.replace(" ","");
                    //根据 = 分割字符串
                    String[] f = g.split("=");
                    System.out.println("进入E 的 for循环");
                    System.out.println("f[0]="+f[0]);
                    System.out.println("f[1]="+f[1]);
                    //根据循环 识别 对应的字段名称
                    if("appName".equals(f[0])){
                        bean.setAppName(f[1]);
                    }
                    if("useCount".equals(f[0])){
                        bean.setUseCount(Integer.valueOf(f[1]));
                    }
                    if("useTime".equals(f[0])){
                        bean.setUseTime(f[1]);
                    }
                    if("packageName".equals(f[0])){
                        bean.setPackageName(f[1]);
                    }
                    if("firstOpenTime".equals(f[0])){
                        bean.setFirstOpenTime(f[1]);
                    }
                    if("lastUsedTime".equals(f[0])){
                        bean.setLastUsedTime(f[1]);
                    }
                    System.out.println("bean="+bean.getAppName());
                }
                listBean.add(bean);
            }
        }
        return listBean;
    }

浅记录一下。

Java中,将数字字符串转换成数字有多种方法,可以根据不同的情况选择合适的方式。下面介绍几种常见的换方法: 1. 使用`Integer.parseInt()`方法: 这是最常用的方法之一,适用于转换成`int`类型的数字。如果字符串不是有效的整数格式,将会抛出`NumberFormatException`异常。 ```java String str = "123"; int number = Integer.parseInt(str); ``` 2. 使用`Integer.valueOf()`方法: 这个方法和`parseInt()`类似,但返回的是`Integer`对象,而不是基本类型`int`。如果需要`int`类型,可以通过`.intValue()`方法获取。 ```java String str = "123"; Integer number = Integer.valueOf(str); int intValue = number.intValue(); ``` 3. 使用`Long.parseLong()`和`Long.valueOf()`方法: 如果字符串表示的是整型(long)数字,则可以使用这两个方法。使用方式与`Integer`的类似。 ```java String str = "1234567890123"; long number = Long.parseLong(str); ``` 4. 使用`Double.parseDouble()`方法: 如果字符串包含小数点,则使用此方法将字符串换为`double`类型的数字。 ```java String str = "123.45"; double number = Double.parseDouble(str); ``` 5. 使用`BigDecimal`: 当需要精确的小数运算时,可以使用`BigDecimal`。这在金融相关的应用中非常有用。 ```java String str = "123.45"; BigDecimal number = new BigDecimal(str); ``` 在使用这些方法时,需要注意字符串的内容,确保它们是有效的数字格式。如果字符串不包含数字或者格式不正确,将会抛出`NumberFormatException`异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值