【问题标题】:add semicolon on the end of the first line in csv file -groovy在 csv 文件的第一行末尾添加分号 -groovy
【发布时间】:2020-09-23 12:34:40
【问题描述】:

请问如何在以下csv文件的第一行末尾添加“;”:

文件如下所示:

> field1,field2,field3,fieldN(here i would like to have a static semicolon [;]) 
> value1,value2,value3,valueN N rows....

所以最后的payload看起来像:

 > field1,field2,field3,fieldN;
 > value1,value2,value3,valueN

我尝试过的简单常规代码(但它在文件末尾而不是在第一行末尾添加分号):

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {

//get payload and def string to append
        
    Map headerMap = message.getHeaders();
    def payload = message.getBody(java.lang.String);
    def a = ";";
    
 
 //append character and set as payload
    payload = payload + a;
    message.setBody(payload);
    
 //return   
    
 return message;
 }

【问题讨论】:

  • 请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。
  • 您可能会找到第一个换行符并替换为 ;在字符串中。或者您可以遍历行,根据您真正想要的内容创建新内容 - @mrhaki.blogspot.com/2009/11/… 的示例

标签: csv groovy


【解决方案1】:

既然你已经有全身负荷的冲击力了 用你的角色替换第一个换行符(和换行符) 应该是一个很好的妥协。例如

def data = """a,b,c
d,e,f
g,h,i"""

assert data.replaceFirst("\n", ";\n") == "a,b,c;\nd,e,f\ng,h,i"
//          ^^^^^^^^^^^^

【讨论】:

  • 那么你能在上面的代码中展示添加一个字符(只是一个静态值;)的样子吗?
  • @PawełGreen 抱歉,但它不理解您的问题。您能否提供一个示例来说明您的要求?我很确定,这回答了你原来的问题。
  • 你好,我应该用什么方法在每行末尾添加分号?例如> 字段 1,字段 2,字段 3,字段 N; > 值 1,值 2,值 3,值 4; > 值 1,值 n;等等。你能帮我吗?
  • 如果replaceFirst 替换第一次出现,你认为什么函数会替换所有出现?你来这里之前有没有尝试过什么?
  • 一开始我用的是replaceAll。我必须在 1 行的末尾添加分号(带有字段名称)。然后我被要求在 csv 文件中的每条记录中添加分号。我找到了一些解决方法。我在 CSV 文件中添加了附加字段,例如“toBeDeleted”和“&”的静态值到所有字段。然后使用replaceAll从“&”到“;”它有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 2013-10-16
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多