【问题标题】:parse string in char format into an array list java将char格式的字符串解析为数组列表java
【发布时间】:2014-12-22 23:11:11
【问题描述】:

比如说我有一个字符串,即

"my dog did a Foo"

我想将每个字符传入一个数组列表,然后根据某些索引进行操作。

所以在这种情况下我需要将字符转换为它们的十进制值:-

"my dog did a Foo" 

将转换为以下十进制表示:-

109 121 32 100 111 103 32 100 105 100 32 97 32 70 111 111

一旦完成,我需要将它发送到一个数组列表并使用第二个数字“121”编译一个字符串

最后一个数字“111”和另一个让我们说“97”并将使用这些数字进行计算。

因此,如果将它们解析为数组列表,则在这种情况下“121”的第二个数字的索引是 index1, 在这种情况下,“111”的索引将是等于字符串长度的索引。(最后一个字符)这意味着我们需要先确定这个索引。 最后是 97,即索引 11。

如何编写将字符串转换为十进制字符值的语句,将每个字符添加到数组列表中自己的索引,然后根据索引进行计算?它已经杀死了我一个多月!

以下代码非常错误,但希望能说明我打算做什么

如果我们使用“i”。表示数组中的索引。

k = 0;
private String lengthofstring = k;
    while (k <= lengthofstring){
System.out.println(i.1+i.11 + "-" + i.lengthofstring);

k++
}

应该是打印:-

218-111(or whichever is at the index equal to lengthofstring)

任何帮助都会很棒

非常感谢您提供的任何帮助。

【问题讨论】:

  • 好的,你在这里问了几个问题。其中两个本质上是“我如何使用 ArrayLists”。我建议您将其简化为一个问题,并告诉我们您整个月都在做什么来解决它。您可以在自己的主题中同时询问其他问题!听起来不错?
  • 你知道String 类有charAt(int ind) 方法吗?

标签: java arrays string arraylist char


【解决方案1】:

一些建议

  1. 您有一个字符串,因此您可以一个一个地转换为 char 类型的数组,或者使用 来自 String 类的准备函数toCharArray()

  2. 显然,您需要定义一个动态数组,它会自行收缩和扩展。

  3. 因为,char 类型可以转换为 int,您可以将每个元素一个一个地转换并添加到 列表。

由于这是作业,所以我的代码答案是

Java 8

代码

   String s = "my dog did a Foo" ;
   List<String> listString = Arrays.asList(s.split(""));
   IntStream.range(0, listString.size())
           .map(i-> (int)listString.get(i).charAt(0))
           .forEach(i -> System.out.print(" " + i));

输出

 109 121 32 100 111 103 32 100 105 100 32 97 32 70 111 111

【讨论】:

  • 我完全同意,但很清楚如何解决这个问题
  • 我无法反驳逻辑上的反对意见。
  • 我敢肯定,现在您的回答对于愿意学习的学生来说更有价值。我仍然不确定为什么 dynamic 数组在您的第 2 点中。
  • 谢谢。我知道 dynamic 数组是什么,但在这类问题中它有点滥用。由于你得到一个非易失性string s,你可以分配一个静态数组int[] ints = new Int[s.length()]
【解决方案2】:

拥有:

String inputString = "my dog did a Foo";

1.要将字符串转换为字符数组:

在您的情况下,ArrayList 可能不是最佳选择。您可以简单地使用 char 数组:

char[] allStringChars;

String 类已经为此提供了一个方法,或者您可以使用类似以下算法的循环来执行此操作:

declare allStringChars with the inputString size
declare i as 0
for each char on inputString do
    copy the char at inputString[i] to the allStringChars[i]
    increment i
end

要从 inputString 中获取特定字符,请使用 inputString.chatAt(i) 方法。

2。对值进行操作:

inputString转换为字符数组后,可以得到任意字符的整数值:

int firstValue = allStringChars[0];
int lastValue = allStringChars[allStringChars.length - 1];

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多