java汉字的存取问题,高手进(计算机问题)

作者&投稿:红虾 (若有异议请与网页底部的电邮联系)
请一位计算机高手、掌握java的专业人士给我简要讲解几个基础问题?~

你这问题有点多,建议找本计算机基础之类的书看看
我简单说下
计算机关键硬件是cpu和内存,cpu负责计算和存放正在计算用的临时数据,内存主要负责存放非正在计算用的临时数据
互联网的工作原理说起来就复杂多了,一句话:把大家的电脑手机等设备通过一定的协议(目前主要是tcp/IP协议)连接起来共享数据
java是一种编程语言,它把人的想法转换成计算机能理解的语言去执行。
学习java编程需要懂算法和数据结构,计算机组成原理,编译原理,数据库系统原理和操作系统原理(以上是计算机四大原理)等专业理论知识,不了解这些是学不好java的。
java是解释执行语言,所以运行的话需要解释程序,也就是java环境,也叫java
虚拟机
notebad和eclipse都是编辑器,用来编写java程序的。配置好编辑编译环境的编辑器就是IDE

这题目用递归反而复杂化了


public class ABC {

public static void main(String args[]) {

String str = "dfa2oj44o:fa:ajfafaf33h88k:af:sd|1234:fsd637hh11|456:sdfs33";

String newStr = str.replaceAll("[^0-9]", " ");
String[] ary = newStr.split("\\s+?");

int sum = 0;
for(String item: ary){
if(item.trim().equals("")){
continue;
}
System.out.print(item + " ");
sum += Integer.parseInt(item);
}

System.out.println("
Sum for digits of the string is: " + sum);
}
}
----------------
2 44 33 88 1234 637 11 456 33
Sum for digits of the string is: 2538

LZ你有才,char只是表示一个字符,而一个汉字是由2个字符组成的字符串,你就算用数组char[],里面的元素还是只能表示一个字符,你不会想到1+1=2吧?那你牛,你怎么把汉字一分为2的?你分给我看看。

你需要制定编号, 默认编码与你的txt文件的编码不一致.

修改这段
FileReader fr=new FileReader(f);

有哪本书说过一个汉字可以放在一个char里?

java是unicode编码,可以存一个汉字

System.out.println("s="+s+s.length()+" c="+c+ c.length);
System.out.println("s="+s+" "+s.length()+" ch="+ch+" "+ch.length);
这两条语句输出的都是乱码的原因是:c和ch这两个数组没有转换为字符串。
可以这样改:
System.out.println("s=" + s + s.length() + " c=" + String.valueOf(c) + c.length);
char ch[] = { '时', '间', '就', '是', '生', '命', '啊' };
s = String.valueOf(ch);
System.out.println("s=" + s + " " + s.length() + " ch=" + String.valueOf(ch)+ " " +ch.length);
还有一个问题是从文件中读出来的中文字符也是乱码,原因是:
long fl=f.length();返回的是返回由此抽象路径名表示的文件的长度。此抽象路径名表示的文件的长度,以字节为单位。因为文件中的内容是:我爱你中国,五个字符,一个字符占两个字节,所以长度为10。
但是char c[]=new char[(int)fl];这句话就不太对了,字符数组c存放的是字符,那么这句话的理解就是字符数组c的大小是10个字符,而实际存放的是5个字符。所以剩下的5个字符就是空值了。输出也就不对了。
下面是我改的:注释是你的源代码。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Chinese {

/**
* @param args
* the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException,IOException {
File f = new File("myfile.txt");
// FileInputStream fis=new FileInputStream(f);
FileReader fr = new FileReader(f);
long fl = f.length();
System.out.println(fl);
// char c[] = new char[(int)fl];
char c[] = new char[(int)fl/2];
// fr.read(c ,0 ,(int)fl);
fr.read(c ,0 ,(int)fl/2);
System.out.println(c);
System.out.println(f.length());
String s = new String(c);
System.out.println("s=" + s + s.length() + " c=" + String.valueOf(c) + c.length);
char ch[] = { '时', '间', '就', '是', '生', '命', '啊' };
s = String.valueOf(ch);
// s = ch.toString();//
System.out.println("s=" + s + " " + s.length() + " ch=" + String.valueOf(ch)
+ " " + ch.length);
}
}


青河县17594063982: Java字符串存中文汉字的问题、、、 -
宜梅内济: 【转】首先,java中的一个char的确是2个字节.java采用unicode,2个字节来表示一个字符.其次,楼主你说的byte[] bytes = str.getBytes();之后是3个字节,这里和前面的概念不一样.java是用unicode来表示字符,"编"这个中文字符的unicode就是2个字节.String.getBytes(encoding)方法是获取指定编码的byte数组表示,通常gbk/gb2312是2个字节,utf-8是3个字节.如果不指定encoding则取系统默认的encoding.

青河县17594063982: java怎么把字符串中的的汉字取出来? -
宜梅内济: 1.判断字符串是否全是汉字.String str1 = "java判断是否为汉字" String str2 = "全为汉字" String reg = "[\\u4e00-\\u9fa5]+" boolean result1 = str1.matches(reg)//false boolean result2 = str2.matches(reg)//true2.提取字符串中的汉字.String str ...

青河县17594063982: java中char怎么储存汉字 -
宜梅内济: Java中用16位(也就是两字节)来表示一个char,一个汉字需要两字节来存储,所以,一个char可以存下一个汉字,所以可以存储中文.

青河县17594063982: java 如何获取两个字符串之间的汉字 -
宜梅内济: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test3 { public static void main(String[] args) { String str = "321AAawdawdawd萨芬AAkjjkjBB"; String regex = "AA(.*)BB"; Pattern pattern = Pattern.compile(regex); ...

青河县17594063982: java中文字图片读取保存问题 -
宜梅内济: 如果你的文本区中不只包含图片信息,而且还包含文本信息,就不好保存了.下面的代码没有实现这个功能.它只是可以打开图片或文本文件.保存图片或文本文件.import java.io.*; import javax.swing.*; import javax.swing.text.*; import java.awt....

青河县17594063982: Java中的char类型可以存储汉字吗 -
宜梅内济: package com.ljy.chuanzhi;/** * 需求:char类型汉字的存储 * @author liaojianya * 2016年11月16日 */ public class CharCharacter { public static void main(String[] args) { 复//单个汉制字存储方式使用char char c = '好'; System.out.println(c); //多个...

青河县17594063982: JAVA面试问题:char型变量中能不能存贮一个中文汉字?为什么? -
宜梅内济: 可以啊.JAVA默认的编码是UNICODE.不是ASCII的char 现有程序可供测试: 但若理解成 s='me' 中放一个汉字,就不可以了,因为中文占16个字节,满了. public class Test { public static void main(String args[]) { char s ='我'; System.out.print(s); } }

青河县17594063982: JAVA中,如何从一个文件读取汉字,并写入另一文件中,要求遇到句号就换行,并记录逗号的个数.
宜梅内济: 代码如下,注:关健是要用一个只有一个元素的char[]数组读出每个字符,再判断是逗号还是句号. import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import ...

青河县17594063982: java中如何从txt文件中一行一行读取汉字,再存到另一txt文件中 -
宜梅内济: 首先用FileReader fileReader=new FileReader(路径)来创建一个节点流,然后用BufferedReader reader=new BufferedReader(fileReader),以BufferederReader处理流来包装这个节点流,然后调用 BufferedReader类里面的readLine()方法就可以一行一行地读了.至于存到另一个txt文件中,你把上面输入流读到的东西放到一个字符串Strng 里面,然后用FileWriter类建立对象,用它的write(String str)方法一次写到目标文件就可以了.

青河县17594063982: Java编程技术中汉字问题的分析及解决方法是什么呢?
宜梅内济: 现在 Java 编程语言已经广泛应用于互联网世界,早在 Sun 公司开发 Java 语言的时候,就已经考虑到对非英文字符的支持了.Sun 公司公布的 Java 运行环境(JRE)本身...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网