Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java如何剥离字符串中的单个字符并将其存储在1D数组中?_Java_String_Char - Fatal编程技术网

Java如何剥离字符串中的单个字符并将其存储在1D数组中?

Java如何剥离字符串中的单个字符并将其存储在1D数组中?,java,string,char,Java,String,Char,我有一个字符串“301918574X”,我想将每个字母存储到一个数组中,第一个插槽中有3,第二个插槽中有0,第三个插槽中有1,等等 我该怎么做呢 编辑: 现在,我已将每个字符分配给相应的数组槽。但是数组中有一个字母,那就是“X”(这实际上是一个ISBN)。当存在X时,它的值应为10,但显然这在字符数组中不起作用。您正在搜索String.tocharray()。如前所述,“它返回一个新分配的字符数组,其长度是字符串的长度,其内容被初始化为包含由字符串表示的字符序列。” char[] theArra

我有一个字符串
“301918574X”
,我想将每个字母存储到一个数组中,第一个插槽中有
3
,第二个插槽中有
0
,第三个插槽中有
1
,等等

我该怎么做呢

编辑:
现在,我已将每个字符分配给相应的数组槽。但是数组中有一个字母,那就是
“X”
(这实际上是一个ISBN)。当存在
X
时,它的值应为
10
,但显然这在字符数组中不起作用。

您正在搜索
String.tocharray()
。如前所述,“它返回一个新分配的字符数组,其长度是字符串的长度,其内容被初始化为包含由字符串表示的字符序列。”

char[] theArrayYouWant = str.toCharArray();

当您想知道某个类是否直接支持特定操作时,应该首先查看平台的API文档。

您正在搜索
String.tocharray()
。如前所述,“它返回一个新分配的字符数组,其长度是字符串的长度,其内容被初始化为包含由字符串表示的字符序列。”

String testString="301918574X";
char[] resultArray = new char[12];

for (int i=0;i<testString.length();i++)
{
  resultArray[i] = testString.charAt(i);
}
当想知道一个类是否直接支持一个特定的操作时,平台的API文档应该是第一个要看的资源。

String testString=“301918574X”;
String testString="301918574X";
char[] resultArray = new char[12];

for (int i=0;i<testString.length();i++)
{
  resultArray[i] = testString.charAt(i);
}
char[]resultArray=新字符[12]; 对于(int i=0;i
String testString=“301918574X”;
char[]resultArray=新字符[12];

对于(int i=0;i如果您只需要索引访问,则可以使用。如果您确实需要数组,则可以使用。

如果您只需要索引访问,则可以使用。如果您确实需要数组,则可以使用。

要“计算”字符,请将它们存储为
int
,而不是
字符

以下是一个例子:

int[] digits = new int[str.length()];
for(int i : 0; i < str.length -1; i++) {
    digits[i] = Character.digit(str.charAt(i), 10);
}
char last = str.charAt(str.length()-1);
if(last == 'X')
   digit[digits.length-1] = 10;
else
   digit[digits.length-1] = Character.digit(last, 10);
int[]位=新的int[str.length()];
for(inti:0;i
(在ISBNs中,只有最后一位数字可以是X。)

要“计算”字符,请不要将它们存储为
char
,而是存储为
int

以下是一个例子:

int[] digits = new int[str.length()];
for(int i : 0; i < str.length -1; i++) {
    digits[i] = Character.digit(str.charAt(i), 10);
}
char last = str.charAt(str.length()-1);
if(last == 'X')
   digit[digits.length-1] = 10;
else
   digit[digits.length-1] = Character.digit(last, 10);
int[]位=新的int[str.length()];
for(inti:0;i

(在ISBNs中,只有最后一个数字可以是X。)

那么,与调用
String.tocharray()
相比,循环的优点是什么呢?我同意你的答案。从这个问题的标题“单字符的剥离”来看,我以为他正在尝试逐个遍历。但你是对的,最好使用tocharray()如果需要所有字符,并且不需要跳过或处理。那么与对
String.tocharray()
的简单调用相比,循环的优势是什么?我同意你的答案。从这个问题的标题“单个字符的剥离”中,我想他正在尝试逐个遍历。但是你是对的,最好使用tocharray()如果需要所有字符,并且不需要跳过或处理。太棒了。现在我唯一的问题是,因为这是一个ISBN,所以X有时会出现在字符串的末尾。现在,感谢你们,每个字符都被分配到数组中正确的位置。但是最后一个字符是X,需要给它一个值10,这样我就可以用它来做数学运算了。不实际上,由于10显然不是字符,所以我无法将X更改为10。那么,使用
Integer.parseInt()
()将字符数组映射到int数组然后手动处理你的特殊情况。太棒了。现在我唯一的问题是,因为这是一个ISBN,所以X有时会出现在字符串的末尾。现在,感谢你们,每个字符都被分配到数组中正确的位置。但是最后一个字符是X,需要给它一个值10,这样我才能用它来计算。不幸的是,因为10是obvi如果不是字符,我无法将X更改为10。那么,使用
Integer.parseInt()
()将字符数组映射到int数组并手动处理您的特殊情况。您不应该在prosa中说
谢谢
,而应该投票表决正确答案,并确认最佳答案。新问题应该是:一个新问题。不过,您可以参考您的旧问题。您不应该在prosa中说
谢谢
,而应该投票表决正确答案,并确认最佳答案。一个新问题答案应该是:一个新问题。不过,你可以参考你的旧问题。