Как преобразовать Sting `8.1.009.125` в массив` double`? Джава

Явное доверие к HTML С помощью $sce Если вы хотите, чтобы Angular отображал данные модели как HTML без каких-либо вопросов, служба $sce - это то, что вам нужно. $sce - это служба Strict Contextual Escaping - причудливое имя для службы, которая может обертывать HTML-строку объектом, который сообщает остальной части Angular HTML, где ему доверяют.

В следующей версии контроллера запрашивает службу $sce и использует службу для преобразования массива ссылок в массив доверенных объектов HTML с помощью $sce.trustAsHtml.

app.controller('XYZController', function ($scope, $sce) {

$sce.trustAsHtml("<table><tr><td><a onclick='DeleteTaskType();' href='#workplan'>Delete</a></td></tr></table>");
-1
задан IMBABOT 16 January 2019 в 18:21
поделиться

3 ответа

Сначала вы split вашего String, создаете массив double с тем же размером и копируете элементы, изменяя их при необходимости .:

String inputArray[] = input.split("\\.");

double outputArray = new double[input.length];

for (int index = 0; index < inputArray.length; index++) {
    if ((inputArray[index].length() > 1) && (inputArray[index].startsWith("0"))) inputArray = inputArray.substring(0, 1) + "." + inputArray.substring(1);
    outputArray[index] = Double.valueOf(inputArray[index]);
}
0
ответ дан Lajos Arpad 16 January 2019 в 18:21
поделиться

Для вашего конкретного случая есть обходной путь. Если у вас есть строка с нулем в начале 009, вы можете создать новую с правильным форматом 0.09, а затем преобразовать в двойное значение как Double.valueOf(string)

0
ответ дан Ruslan 16 January 2019 в 18:21
поделиться

Это, конечно, непроверенный код ...

public Double[] convertTab(String myStr) {
  //We start by splitting the string:
  String[] tab = myStr.split("\\.");

  //We need a structure of double as a result
  List<Double> result = new ArrayList<Double>();

  //Then we loop on the different elements of the table
  for (String sNum : tab) {
    //Then we convert, which isn't easy because the rules are ambiguous in your question
    result.add(convertDouble(sNum);
  }

  return result.toArray();
}

public double convertDouble(String sDouble) {
  int accu = 1;
  for (int i=0;i<sDouble.length();i++) {
    //We count the number of 0
    if (sDouble.charAt(i) == '0') {
      accu = accu*10;
    } else {
      //Parsing of the remaining digits and division
      return Double.parseDouble(sDouble)/accu;
    }
}
0
ответ дан Alexis Dufrenoy 16 January 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: