如何获取字符串数组并获取Java中EACH字符串中每个字符的ASCII值?

时间:2017-01-19 03:09:59

标签: java arrays ascii

所以我有一个字符串数组。每个索引都包含一个字符串,如“abc”“fnsb”“feros”。我想通过for循环传递这个字符串数组,该循环可以获得上面列出的所有字符串的每个字符的ASCII值,并可能将每个字符串的字符的ASCII值存储在另一个数组中。例如,如果我的字符串数组有

mystrings[0] = hi
mystrings[1] = hello
mystrings[2] = farewell

我希望它取“h”和“i”的ASCII值并将其存储在newarray[0]中,然后取“h”,“e”,“l”,“l”的ASCII值“,”o“并将其存储到newarray[1]和ETC。

注意:上面是一堆伪代码。这是我实际拥有的:

String[] mystrings= new String[100];
double [] newarray = new double[100];
        for (int x=0; x<100; x++){
            char character = mystrings[x].charAt(x);
            int ascii = (int) character;
            newarray[x] = ascii;
            System.out.println(newarray[x]);
        }

另一个注意事项:mystrings数组的每个索引中确实存储了多个字符串。它只是在我的代码的另一部分,我不想分享。所以请假设“mystrings”数组正确地填充了各种字符串。谢谢!

3 个答案:

答案 0 :(得分:1)

伪代码中的关键问题是结果必须不仅仅是数组,而是数组数组:

int[][] newarray = new int[mystrings.length][];

第二个问题是获取字符代码必须在一个单独的循环中完成,嵌套在第一个循环中。循环必须从零到mystring[i].length()

char character = mystrings[x].charAt(y);
//                                   ^

请注意,charAt参数x中的mystrings[x]相同,因为它必须是一个单独的循环。

答案 1 :(得分:0)

<div class="add-note" [class.is-active]="isActive">
  <button class="add-note-button" (click)="onToggleAddNote()">
    Add Note
    <md-icon svgSrc="assets/images/plus-circle-outline.svg"></md-icon>
  </button>

  <div class="add-note-content">
    <form [formGroup]="form" autocomplete="off" novalidate class="note-form">

      <fieldset>

        <div class="form-field">
          <textarea name="body" formControlName="body"></textarea>
          <div class="field-error-message"
               *ngIf="isErrorVisible('body', 'required')">
            field is mandatory
          </div>
        </div>

        <div class="btn-toolbar">
          <div class="btn-group actions">
            <button class="btn btn-outline-primary" (click)="onToggleAddNote()">
              Cancel
            </button>
            <button class="btn btn-outline-success" [disabled]="!form.valid" (click)="save(form)">
              Save
            </button>
          </div>

        </div>

      </fieldset>

    </form>
  </div>
</div>

答案 2 :(得分:0)

这是Java 8解决方案:

String[] mystrings = {"hi", "bye"};

List<List<Integer>> result;

result = Arrays.stream(mystrings)
                 .map(s -> s.chars()
                                   .mapToObj(e -> (char) e)
                                   .collect(Collectors.toList()))
                 .map(chars -> chars.stream()
                                       .map(Integer::new)
                                       .collect(Collectors.toList())
                 )
                 .collect(Collectors.toList());

...输出将是:

[[104, 105], [98, 121, 101]]