java-字符数组输出字符还是地址的问题

问题描述

字符数组输出字符还是地址的问题

为什么char[] c=new char[]{‘a’,’b’,’c’};System.out.println(c);输出的不是地址,而是abc

解决方案

这是println方法重载。java打印输出System.out.println会调用输入参数的toString方法,输出内容是toString方法的返回值
println的参数分基本类型,String和Object类型

解决方案二:

System.out 是一个 PrintStream 对象,你看看文档,有 print(char[]) 和 println(char[]) 方法,但没有 print(int[]) 或者 println(int[]) 方法。

解决方案三:

字符数组的输出问题

解决方案四:

基本数据类型分 和 已用的类型是不一样的!

解决方案五:

基本数据类型分 和 已用的类型是不一样的!

解决方案六:

println
public void println(char[] x)
打印字符数组,然后终止该行。此方法的行为就像先调用 print(char[]) 然后调用 println() 一样。
参数:
x - 要打印的字符数组。

print
public void print(char[] s)
打印字符数组。按照平台的默认字符编码将字符转换为字节,并完全以 write(int) 方法的方式写入这些字节。
参数:
s - 要打印的字符数组
抛出:
NullPointerException - 如果 s 为 null

解决方案七:

这很正常,你输出&c就会输出第一个元素的地址了。

解决方案八:

我觉得问题就在于system.out.println(c); println方法输出的是字符。println方法输出字符数组的时候默认调用了toString方法,将整个数组的内容进行了输出。

解决方案九:

这个是jdk实现的问题,数组的toString方法都是打印地址,jdk特殊处理了字符数组而已

时间: 2024-08-29 17:47:44

java-字符数组输出字符还是地址的问题的相关文章

《C语言解惑》—— 2.7 别混淆字符数组和字符

2.7 别混淆字符数组和字符 [例2.9]下面的程序正确吗? #include <stdio.h> void main() { char st[]="When you go home?"; printf("%s\n",st); //1 printf("%c\n",st[5]); //2 printf("%s\n",st[5]); //3 } [解答]编译能通过,但结果不正确.第1条输出语句中的st代表字符串的首地址

字符数组与字符指针的问题

问题描述 字符数组与字符指针的问题 include int main(void) { char*str="hello"; return 0; } ///////////////////////////////我的疑惑是:为什么上面可以,下面的不可以? include int main(void) { char*str; scanf("%s",str); return 0; } 解决方案 唔..比如这样一段代码 通过调试得知指针变量s地址为0xbffff344:str

C语言及程序设计提高例程-28 字符串、字符数组、字符指针

贺老师教学链接  C语言及程序设计提高 本课讲解 用指向字符的指针引用字符串 #include <stdio.h> int main( ) { char str[]="I am happy"; char *s; s=str; puts(str); puts(s); return 0; } 杜绝(指向字符的)野指针 (1) #include <stdio.h> int main( ) { char str[80]; char *s=str; gets(s); pu

浅谈java 字符串,字符数组,list间的转化_java

1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回. 2.字符串转字符数组 String str =" aa.png,a2.png,a3.png"; String[] arrayStr =new String[]{}; arrayStr = str.split(","); 3.字符数组转list List list = java.util.Arrays.asList(array

线程按指定顺序输出字符到数组的实例代码_C 语言

题目: 有三个线程,线程1的功能就是向字符数组输出A,线程2的功能就是向字符数组输出B,线程2的功能就是向字符数组输出C,要求按顺序向数组赋值ABCABCABC,ABC的个数由线程函数1的参数指定. 接口说明: void Init();  //初始化函数 void Release(); //资源释放函数 unsignedint__stdcall ThreadFun1(PVOID pM)  ; //线程函数1,传入一个int类型的指针,用于初始化输出A次数,资源需要线程释放 unsignedint

深入解析C++中的字符数组和处理字符串的方法_C 语言

C++字符数组 用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符.字符数组具有数组的共同属性.由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数. 字符数组的定义和初始化 定义字符数组的方法与前面介绍的类似.例如: char c[10]; c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′; 上面定义了c为字符数组,包含10个元素.在赋值

c语言-结构体内指针字符数组的释放

问题描述 结构体内指针字符数组的释放 问题:结构体成员char* name和结构体struct student* studentIOS同时释放的话回报错,错误见代码中注释.请问这里要怎么释放呢?还是结构体里面不能这样使用指针字符数组? #include #include struct student{ int id; //长度:4 char* name; //8 int score[2]; //8 float avgScore; //4 }; void input(struct student*

字符指针和字符数组的使用区别

先看一个程序代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int main(){ char str1[] = "abc"; char str2[] = "abc"; char *str3 = "abc"; char *str4 = "abc&

c语言字符数组与字符串的使用详解_C 语言

1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用