Java 有没有办法将Object[]数组转换为char[]数组? 类解决方案{ char[]make(字符串s){ Stack st=新堆栈(); for(char c:s.toCharArray()){ 如果(c!='#'){ 圣普什(c); } 如果(!st.isEmpty()){ 圣普(); } } 返回(char[])(st.toArray()); } 公共布尔backspaceCompare(字符串S、字符串T){ char[]ch1=制造; char[]ch2=制造(T); int i,j; 如果(ch1.length!=ch2.length) 返回false; 否则{ 对于(i=0;i
嗯,如果必须,很容易编程:Java 有没有办法将Object[]数组转换为char[]数组? 类解决方案{ char[]make(字符串s){ Stack st=新堆栈(); for(char c:s.toCharArray()){ 如果(c!='#'){ 圣普什(c); } 如果(!st.isEmpty()){ 圣普(); } } 返回(char[])(st.toArray()); } 公共布尔backspaceCompare(字符串S、字符串T){ char[]ch1=制造; char[]ch2=制造(T); int i,j; 如果(ch1.length!=ch2.length) 返回false; 否则{ 对于(i=0;i,java,arrays,object,Java,Arrays,Object,嗯,如果必须,很容易编程: class Solution { char[] make(String s){ Stack<Character> st= new Stack<Character>(); for(char c:s.toCharArray()){ if(c!='#'){ st.push(c); } else if(!st.
class Solution {
char[] make(String s){
Stack<Character> st= new Stack<Character>();
for(char c:s.toCharArray()){
if(c!='#'){
st.push(c);
}
else if(!st.isEmpty()){
st.pop();
}
}
return (char [])(st.toArray());
}
public boolean backspaceCompare(String S, String T) {
char[] ch1=make(S);
char[] ch2=make(T);
int i,j;
if(ch1.length!=ch2.length)
return false;
else{
for(i=0;i<ch1.length;i++){
if(ch1[i]!=ch2[i]){
return false;
}
}
}
return true;
}
}
Character[]refArray=(Character[])st.toArray();
char[]charArray=新字符[refArray.length];
for(int i=0;i
请注意,可能更喜欢指定的集合,可能是围绕
StringBuilder
或类似的东西构建的集合(如果您有许多字符)。毕竟,使用每个字符的引用是相当浪费的(但是,是的,现在的计算机).如果使用字符
,则只能使用T[]toArray(T[]a)
覆盖
返回一个数组,该数组包含
顺序正确;返回数组的运行时类型是
指定的数组
Character[]make(字符串s){
Stack st=新堆栈();
//...
返回st.toArray(新字符[st.size()]);
}
公共布尔backspaceCompare(字符串S、字符串T){
字符[]ch1=品牌;
字符[]ch2=制造(T);
//...
}
No,您应该将返回类型切换为Character[]或Object[]或手动复制数组。您可以尝试以下操作:String stringArray[]=Arrays.stream(objArray).toArray(String[]::new);
Character[] refArray = (Character[]) st.toArray();
char[] charArray = new char[refArray.length];
for (int i = 0; i < refArray.length; i++) {
charArray[i] = refArray[i];
}
return charArray;
Character[] make(String s){
Stack<Character> st = new Stack<Character>();
//...
return st.toArray(new Character[st.size()]);
}
public boolean backspaceCompare(String S, String T) {
Character[] ch1 = make(S);
Character[] ch2 = make(T);
//...
}