【问题标题】:How do I split a string and assign an int value to each of the individual characters of the string? [closed]如何拆分字符串并为字符串的每个单独字符分配一个 int 值? [关闭]
【发布时间】:2016-12-28 16:11:18
【问题描述】:

例如,我有一个字符串“Nathan”,我想将字符串拆分为单个字符“N”“A”“T”“H”“A”“N”,然后我还想匹配这些字符到它们对应的字符串。例如,“N”将与字符串 N 匹配,因此分配值 5,“A”分配值 1,...

            String A = "1";  String J = "1" ; String S = "1";
            String B = "2";  String K = "2";  String T = "2";
            String C = "3";  String L = "3";  String U = "3";
            String D = "4";  String M = "4";  String V = "4";
            String E = "5";  String N = "5";  String W = "5";
            String F = "6";  String O = "6";  String X = "6";
            String G = "7";  String P = "7";  String Y = "7";
            String H = "8";  String Q = "8";  String Z = "8";
            String I = "9";  String R = "9";

            String firstname = "NATHAN";

【问题讨论】:

  • 您要我们提供完整的代码吗?或者您是否尝试这样做并发现它很困难?如果是这样,请展示您的尝试,以便我们提供帮助。

标签: java arrays string split


【解决方案1】:

当您必须将某些元素“分配”给其他一些元素时,地图是概念上最符合此要求的对象。

Map<Character, Integer> mappedValues = new HashMap<Character, Integer>();
mappedValues.put('A', 1);
mappedValues.put('B', 2);
...//and so on

String nat = "NATHAN";
Map<Character, Integer> charToInt = new HashMap<Character, Integer>();
for(int i = 0; i < nat.length(); i++){
    charToInt.put(nat.charAt(i), mappedValues.get(nat.charAt(i)));
}
//{('N', 5), ('A', 1)...}

【讨论】:

  • 谢谢,正是我想要的。
【解决方案2】:

您可以通过将 String 转换为 char 数组来做到这一点。

String s = "NATHAN";
char[] c = s.toCharArray();

现在数组中的各个字符将像其他数组一样从 0 开始索引。如果您不确定,我只想演示以下内容,

System.out.println(c[2]); //this will print the character "T"

希望您了解它的工作原理。

【讨论】:

  • 这是如何为每个字符分配一个 int 的?
  • 我在他回答问题后添加了代码,以澄清我在问什么。给您带来的不便,我深表歉意。
  • 和数组的索引一样。没有为每个 char 显式分配 int。代码所做的是将 String s 转换为字符数组 c。现在 c 与您在 java 中看到的所有其他数组相同。
  • @NejcFosnaric 现在我明白你的要求了。您可以使用 for 循环遍历字符数组并使用包含自定义对象的 ArrayList 并分配您需要的 int。
  • 用 2 个变量创建一个单独的类。一个是字符,另一个是字符串。现在 list.add(c, s)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 2022-11-16
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
相关资源
最近更新 更多