有人可以帮忙吗?我被困在读取一个csv文件并将其序列化到POJO上。我正在使用杰克逊图书馆的CsvMapper。读取和序列化部分已完成并且工作正常。问题是,当用户移动标题/列时,导致序列化做出一些字母顺序的假设,即CSV文件上的值也是字母顺序的。
例如(下面的文件在第一行具有标题,第二行具有人员详细信息值)
personNameHeader,personAgeHeader
Wiliam,32
现在我的POJO如下
@JsonIgnoreProperties(ignoreUnknown = true)
// @JsonPropertyOrder(value = {"personNameHeader", "personAgeHeader" })
public class PersonDetailsCSVTemplate {
@JsonProperty("personNameHeader")
private String name;
@JsonProperty("personAgeHeader")
private String age;
//Public constructor and getters and setters...
Run Code Online (Sandbox Code Playgroud)
这是从CSV读取值并将其映射到类的代码
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
...
CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = csvMapper.typedSchemaFor(PersonDetailsCSVTemplate.class).withHeader();
MappingIterator<PersonDetailsCSVTemplate > dataIterator = csvMapper.readerFor(PersonDetailsCSVTemplate.class).with(schema)
.readValues(data);
while (dataIterator.hasNextValue()) {
PersonDetailsCSVTemplate dataCSV = dataIterator.nextValue();
}
Run Code Online (Sandbox Code Playgroud)
序列化之后,可以看出CsvMapper映射了以下内容:
PersonDetailsCSVTemplate.name = "32"和PersonDetailsCSVTemplate.age = "Wiliam"
通过用注释类来@JsonPropertyOrder(value = {"personNameHeader", "personAgeHeader" })强制CSV始终是name列,然后是age列,这是不理想的。
任何人都可以提出他们认为可行的建议吗?问候
有人可以帮忙吗?我正在关注 Java JDK 示例,其中有很多关于如何管理容器和 blob 的示例,但是没有说明如何从一个存储容器移动到另一个存储容器。
例如,我在 StorageOne/ContainerOne/BlobName 上有一个 blob 需要移动到 Storage2/ContainerTwo/BlobName
我正在查看这个网站https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/storage/azure-storage-blob/README.md但没有运气。
我还设法通过 ConnectionString 进行连接并创建、下载 blob,但无法弄清楚如何移动。
任何建议都会有帮助。我也尝试过在Azure中创建一个App Function来做到这一点,但是我的powershell技能并不好。
谢谢
谁能帮我吗?我正在使用Java中的URL链接进行验证。我创建了一个正则表达式(我不熟悉)来验证链接,但是我为此感到吃力。
代码如下:
public class TestRegEx {
public static void main(final String[] args) {
// List of valid URLs
List<String> validValues = new ArrayList<>();
validValues.add("https://www.linkedin.com/sometext");
validValues
.add("https://uk.linkedin.com/in/wiliam-ferraciolli-a9a29795");
validValues.add("https://it.linkedin.com/hp/");
validValues.add("https://cy.linkedin.com/hp/");
validValues
.add("https://www.linkedin.com/profile/view?id=AAIAABQnNlYBIx8EtS5T1RTUbxHQt5Ww&trk=nav_responsive_tab_profile");
// List on invalid URLs
List<String> invalidValues = new ArrayList<>();
invalidValues.add("http://www.linkedin.com/sometext");
invalidValues.add("http://stackoverflow.com/questions/ask");
invalidValues.add("google.com");
invalidValues.add("http://uk.linkedin.com/in/someDodgeAddress");
invalidValues.add("http://dodge.linkedin.com/in/someDodgeAddress");
// Pattern
String regex = "(https://)(.+)(www.)(.+)$";
Pattern pattern = Pattern.compile(regex);
for (String s : validValues) {
Matcher matcher = pattern.matcher(s);
System.out.println(s + " // " + matcher);
}
}
}
Run Code Online (Sandbox Code Playgroud)
谁能帮助我创建一个正则表达式来验证以下 前缀: “ https://” 可选前缀: …
嗨,有人可以帮忙吗?我正在尝试格式化日期和时间字符串。目前看起来像这样“ 20160112T110000Z”我需要它是“ 2016-01-12T11:00:00Z”
没有特殊字符的字符串从第3方重复库中返回。我需要先将其转换为具有特殊字符,然后再将其解析为Calendar对象。
有人可以帮忙吗?
到目前为止,我的代码如下所示:
final String TIMEFORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
String string = "20160112T110000Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = format.parse(string);
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)
但是,这是行不通的。
任何建议表示赞赏
java ×4
azure ×1
blob ×1
calendar ×1
csv ×1
mapping ×1
parsing ×1
powershell ×1
regex ×1
url-pattern ×1