Необходимо заменить все запятые в AWS lambda с использованием Java 8

#java #amazon-web-services #replace #aws-lambda #replaceall

#java #amazon-web-services #заменить #aws-lambda #замените все

Вопрос:

Сначала я должен рассказать о том, насколько я неопытен в этом языке. Все, что я пробовал, взорвалось. Похоже, что .replace или .replaceAll в любом случае, я пытался его использовать. Я использовал шаблон и сопоставитель. не пойдет.

Мне нужно поместить этот код в уже рабочий класс, который считывает результирующий набор из запроса и отправляет его в файл .csv. Вот код, с которым я работаю. Мою последнюю попытку вы увидите между комментариями // Весь беспорядок Никки и // конец беспорядка Никки. Я действительно схожу с ума, если кто-нибудь может помочь пролить свет. Кажется, что это такая простая вещь, но языковой барьер реален!!

открытый класс CSVUtil {

 public static final String QUOTE = """;
public static final String DELIMETER = ",";

public static String convertToCsv(ResultSet rs) throws SQLException {
    StringBuilder csv = new StringBuilder();

    while (rs.next()) {

        // all Nikki's mess
        // between the comments
        
        String comments = rs.getString("ImageAnnotation");
        //Pattern pt = Pattern.compile(",");
        //Matcher match = pt.matcher(comments);
        //while(match.find()){
            comments = comments.replaceAll(",","");
        //}
        System.out.println(comments);
        
        //end of Nikki's mess

        csv.append(QUOTE).append(rs.getString(1)).append(QUOTE);

        for (int i = 2; i <= rs.getMetaData().getColumnCount(); i  ) {
            csv.append(DELIMETER).append(QUOTE).append(rs.getString(i) == null ? "": rs.getString(i)).append(QUOTE);

        }

        csv.append(System.lineSeparator());
    }
    return csv.toString();
}
 

}

Комментарии:

1. Я не решался публиковать здесь. это жесткая толпа. Я прочитал оооочень много вопросов о решении этой проблемы, и ни один из них не работает, поэтому я подумал, что в AWS Lambda java есть что-то более конкретное, что делается в AWS Lambda java, отсюда и название, включающее его. Прошу прощения за мою неопытность. Единственный журнал ошибок, который у меня есть, это:

2. «Сообщение об ошибке»: «java.lang. Исключение NullPointerException», «ErrorType»: «java.lang. Исключение NullPointerException», «stackTrace»: [ «com.sgk.redshift.прием. CSVUtil.convertToCsv(CSVUtil.java:54)», «com.sgk.redshift.прием. RdsDataService.exportBMRDataTo(RdsDataService.java:80)», «com.sgk.redshift.прием. LambdaFunctionHandler.handleRequest(LambdaFunctionHandler.java:27)», «com.sgk.redshift.прием. LambdaFunctionHandler.handleRequest(LambdaFunctionHandler.java:18)»

3. На самом деле не говорит мне ничего, кроме моей строки 54, где возникает ошибка. и это строка comments = comments.replaceAll(«,»,»»);

4. спасибо — я уже прочитал это объяснение.

Ответ №1:

Я смог решить. Я добавил replaceAll в эту строку:

csv.append(DELIMETER).append(QUOTE).append(rs.getString(i) == null ? «»: rs.getString(i)).добавить(ЦИТАТА);

csv.append(DELIMETER).append(QUOTE).append(rs.getString(i) == null ? «»: rs.getString(i).replaceAll(«,»,»»)). добавить(ЦИТАТА);

Похоже, это сработало.

Комментарии:

1. Как вы создаете свою лямбда-функцию Java — вы создаете ее с помощью Eclipse tool или используете Java runtime API в проекте Maven (что лучше).