Java 返回一个小正方形:s
嘿,伙计们,烟囱飞越者 我写过Java 返回一个小正方形:s,java,arrays,Java,Arrays,嘿,伙计们,烟囱飞越者 我写过 public class testing { public String subString(int start, int end) { char[]content = new char[]{0,1,2,3,4,5,6,7,8,9}; String output =""; for (int i = 0; i < content.length;i++) {
public class testing
{
public String subString(int start, int end)
{
char[]content = new char[]{0,1,2,3,4,5,6,7,8,9};
String output ="";
for (int i = 0; i < content.length;i++)
{
if (content[i] >= start && content[i] < end)
{
output = output + content[i];
}
}
return output;
}
/**
* @param args
*/
public static void main(String[] args)
{
testing test1 = new testing();
System.out.println( test1.subString(1,2));
}
}
它在某种程度上起作用,无论我如何尝试和分割,它都将返回正确数量的小正方形。我猜是因为我想把数组元素放在字符串中
返回值也需要是字符串
有人能帮我吗
另外,我知道有一个函数可以实现这一点:)它正在精确地打印您告诉它的内容:打开括号,关闭括号。如果要打印
[12]
,则内容应为{0'、'1'、'2'…}
,而如果条件应为i>=start&i小正方形是ASCII字符,代码范围为0到9。我想你的意思是声明一个int[]
数组,而不是char[]
数组
这样做:
char[] array = new char[] {'1', '2', '3', '4'};
或
你有主意了
这是程序员的缺陷,而不是程序错误。您试图打印的字符值为1(>=1和<2)。查看此ascii表以了解您在写什么:
我相信你想做:
char[]content = new char[]{'0','1','2','3','4','5','6','7','8','9'};
因此,您的代码是:
public class testing
{
public String subString(int start, int end)
{
char[]content = new char[]{'0','1','2','3','4','5','6','7','8','9'};
String output ="";
for (int i = 0; i < content.length;i++)
{
if (content[i] >= start && content[i] < end)
{
output = output + content[i];
}
}
return output;
}
/**
* @param args
*/
public static void main(String[] args)
{
testing test1 = new testing();
System.out.println( test1.subString(1,2));
}
}
据我所知,这里有两个不同的问题,第一个是字符数组。
您有char[]content=new char[]{0,1,2,3,4,5,6,7,8,9};表示ascII值0-9,可能是:;不是你想要的,特别是char[]content=new char[]{'0','1','2','3','4','5','6','7','8','9'};这就是你想要的
其次,由于检查是否在正确范围内的if语句根本不正确,因此应该检查索引是否在正确范围内,而不是值:if(i>=start&&i
这些问题将使您的算法工作;然而,对于这个普遍问题有更好的解决方案;也许您会考虑是否真的需要遍历数组的全部内容?内容的初始化可能不会按照您的想法进行
char[]content = new char[]{0,1,2,3,4,5,6,7,8,9};
如果您想要的输出是数字(而不是奇怪的ascii字符),则必须将数组字符初始化为字符,即使用撇号将其放在下面:
char[]content = new char[]{'0','1','2','3','4','5','6','7','8','9'};
您的代码不会产生错误,因为字符的内部表示形式是数字。您所说的小正方形是什么意思?不,我指的是小正方形,例如,结果我得到两个小正方形来表示2个numbers字符'1'与int 1不是一回事,因此if条件不会返回true@MadProgrammer除了他使用的是1
,而不是'1'
,所以(不可打印的)字符实际上是附加的。他只是没有在屏幕上看到他们。@chrylis正朝着同一个方向跑;)@的确如此。编辑。
1
char[]content = new char[]{0,1,2,3,4,5,6,7,8,9};
char[]content = new char[]{'0','1','2','3','4','5','6','7','8','9'};