首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java将字母转换为数字,然后将所有值放入数组

问java将字母转换为数字,然后将所有值放入数组
EN

Stack Overflow用户
提问于 2014-04-17 08:45:58
回答 6查看 724关注 0票数 1

我想找出把字母转换成数字的方法,然后按照n位数来分割它。

例如,我有话要说:明天开始

然后,我把它转换成类似于ASCII的数字。因此,转换号必须是:8479777982827987326669717378

在此之后,所有的数字将转换为n位数,并将其放入一维数组中.

假设数字分裂成3位数,每个块。结果必须是:847 977 798 282 798 732 666 971 737 8

它们都在数组中:arr[0] = 847, arr[1] = 977, arr[2] = 798,....arr[n]

我已经试过用java来解决它了。但到目前为止,我可以将字符串转换为数字。

下面是我尝试过的代码的一部分:

代码语言:javascript
复制
    String words = "TOMORROW BEGIN"; 
    int sa;
    char c; 
    for(int i = 0; i < words.length(); i++){ 
      c = words.charAt(i); 
      sa = (int) c;
      String kt = Integer.toString(sa);
      System.out.print(kt);  
    }

嗯,它成功地转换成了数字:8479777982827987326669717378

但是,我混淆了如何将数字拆分为n位数字块(假设每个块3位数字),然后将所有块的值放入数组中。

我该怎么做才能解决这个问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-04-17 09:24:07

您可以创建这样的方法:

代码语言:javascript
复制
public static int[] splitString(String str, int length){

    int size=str.length()/length;
    if( str.length() % length != 0)
       size++;

    int[] arr = new int[size];
    int a=0;
    for (int i= 0; i < str.length(); i+=length) {
        if(i+length < str.length())
            arr[a++]=Integer.parseInt(str.substring(i, i+length));
        else  
            arr[a++]=Integer.parseInt(str.substring(i,  str.length()));
    }
    return arr;
}

在您的主要方法中,只需调用:

代码语言:javascript
复制
String str = "8479777982827987326669717378";
System.out.println(Arrays.toString(splitString(str,3)));

输出:

代码语言:javascript
复制
[847, 977, 798, 282, 798, 732, 666, 971, 737, 8]

您甚至可以指定将2位数字int存储到数组中。

代码语言:javascript
复制
System.out.println(Arrays.toString(splitString(str, 2)));

输出:

代码语言:javascript
复制
[84, 79, 77, 79, 82, 82, 79, 87, 32, 66, 69, 71, 73, 78]
票数 2
EN

Stack Overflow用户

发布于 2014-04-17 08:52:18

一种解决方案是每三个字符使用substring,并使用Integer.parseInt()将每个子字符串转换回来。

代码语言:javascript
复制
public class Main {
public static void main(String[] args) {
    String input = "8479777982827987326669717378";
    int n = 3;
    int[] output = new int[(input.length() + n - 1) / n];
    for (int i = 0; i < output.length; i++) {
        output[i] = Integer.parseInt(input.substring(i*n, Math.min((i+1)*n, input.length())));
       // System.out.println(output[i]);
    }
}
}
票数 2
EN

Stack Overflow用户

发布于 2014-04-17 08:55:35

可以使用子字符串方法拆分字符串。

例:

代码语言:javascript
复制
  for (int start = 0; start < kt.length(); start += size) {

           system.out.println(kt.substring(start, Math.min(kt.length(), start + size)))
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23128524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档