精华内容
下载资源
问答
  • Java 打印字符串

    2021-02-12 09:56:38
    打印工作常包含两部分:* 作业控制——创建一个打印作业,将它连接到...这个类代表了一个打印任务,大部分相关的类都位于java.awt.print包中。import java.awt.print.*;PrinterJob job = PrinterJob.getPrinterJob...

    打印工作常包含两部分:

    * 作业控制——创建一个打印作业,将它连接到打印机,指定打印的副本数,用户打印对话交互。

    * 页面成像——将内容绘制到页面,并管理超出页面的内容。

    首先,创建一个打印任务。这个类代表了一个打印任务,大部分相关的类都位于java.awt.print包中。import java.awt.print.*;

    PrinterJob job = PrinterJob.getPrinterJob();

    接着,提供代码实现Printable接口将内容呈递给页面。

    class HelloWorldPrinter implements Printable {…}

    ……

    job.setPrintable(new HelloWorldPrinter());

    一个应用程序通常会显示一个打印对话框,用户可以通过它改变各种选项,例如:设置打印副本数目,页面方向,或者目标打印机。

    boolean doPrint = job.printDialog();

    这个对话框一直显示直到用户批准打印或者取消打印。如果用户给出命令去继续打印,变量doPrint将会为true。如果用户取消了打印,doPrint为false。因为显示这个对话框完全是可选的,所以返回值纯粹是提供信息的。

    如果doPrint变量为true,程序将通过调用PrinterJob.print方法来让作业执行打印请求。

    if (doPrint) {

    try {

    job.print();

    } catch (PrinterException e) {

    /* The job did not successfully complete */

    }

    }

    如果在将作业传递给打印机过程中出现问题时,PrinterException将被抛出。然而,因为PrinterJob.print方法在将作业传递给打印机后立即返回,所以用户的程序无法检测到夹纸或缺纸这些问题。这个打印作业控制样本对基本的打印用户已经足够了。

    Printable接口只有一个方法:

    public int print(Graphics graphics, PageFormat pf, int page) throws PrinterException;

    PageFormat类描述了页面的定位信息、它的尺寸以及每英尺可绘制的区域(单位1/72nd)。可绘制区解释了大多数打印机的边界限制(硬件边界)。可绘区是位于这些边界之内的区域,实际应用中,经常为留出页眉和页脚而进一步限制这些边界。

    page参数是一个从0开始的页面编号。

    下面的代码展示了完整的Printable接口实现:

    import java.awt.print.*;

    import java.awt.*;

    public class HelloWorldPrinter implements Printable {

    public int print(Graphics g, PageFormat pf, int page) throws PrinterException {

    if (page > 0) {

    return NO_SUCH_PAGE;

    }

    Graphics2D g2d = (Graphics2D)g;

    g2d.translate(pf.getImageableX(), pf.getImageableY());

    g.drawString("Hello World!", 100, 100);

    return PAGE_EXISTS;

    }

    }

    发送一个图形实例到打印机本质上和将它发送到屏幕上一样。这两种情况你都需要做如下步骤:

    * 向一个二维图形绘制内容的其它操作,像绘制测试字符串一样容易。

    * 打印图形要一个很高的分辨率,这应该对大多数代码是透明的。

    * Printable.print()方法被打印系统调用,就像在屏幕上显示空间时调用Component.praint()一样。打印系统将为页面0,1,……调用Printable.print()方法,知道返回NO_SUCH_PAGE.

    * print()方法可以被同一个页面调用很多次,知道文档完成。这一特性将在用户指定打印多个副本时用到。

    * PageFormat的可绘制区域决定了剪切区域。可打印区域在计算分页数或如何控制打印内容的范围时同样很重要,因为分页符是通过每页适应的程度来定义。

    提示:对某些页面索引,print()方法可能会跳过,如果用户指定了不同的页面范围,指定了某些不被包含在内的特定页面索引。

    展开全文
  • Java字符串转为字符

    千次阅读 2021-03-04 00:53:33
    代码如下:import java.util.Arrays;import java.util.Scanner;public class App {public static void main(String[] args) {Scanner scanner = new Scanner...键盘录入一个字符串String str = scanner.nextLine();c...

    代码如下:

    import java.util.Arrays;

    import java.util.Scanner;

    public class App {

    public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    // 1.键盘录入一个字符串

    String str = scanner.nextLine();

    char[] chars = new char[str.length()];

    // 2.将该字符串变成字符数组(不能使用toCharArray()方法)

    for (int i = 0; i < str.length(); i++) {

    char ch = str.charAt(i);

    // 5.将字符数组中索引为偶数的元素变成'~'

    ch = (i % 2 == 0) ? '~' : ch;

    // 3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)

    ch = (ch >= 'A' && ch <= 'Z') ? (char)(ch - 32) : ch;

    chars[i] = ch;

    }

    // 4.如果第一位和最后一位的内容不相同,则交换

    if (chars[0] != chars[chars.length - 1]) {

    char ch = chars[0];

    chars[0] = chars[chars.length - 1];

    chars[chars.length - 1] = ch;

    }

    // 6.打印数组元素的内容

    System.out.println(Arrays.toString(chars));

    }

    }

    展开全文
  • java转换字符串编码格式 (解码错误,重新解码)字符集概念:规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储...

    java转换字符串编码格式 (解码错误,重新解码)

    字符集概念:规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。

    我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。

    乱码场景(纯属瞎掰):

    1) 前台输入utf-8编码的一串汉字(string1)。 (页面编码为utf-8, 在内存中会将这串汉字以utf-8编码为对应的二进制流存储)

    2) 这串汉字(string1)的二进制流在经过http协议传输到后台时,这段比特流会被以iso-8859-1编码强行解码为字符串(string2)。

    (2.1 http默认编码格式为iso-8859-1)

    (2.2 这个默认编码在什么时候起作用呢? 应该是在到达tomcat之后, 到达servlet之前, tomcat对request请求强行使用iso-8859-1进行了解码)

    (2.3 有什么办法阻止tomcat对request请求强行iso-8859-1解码呢?

    apache-tomcat\conf\server.xml中添加uriencoding="utf-8"配置即可,还是来个图吧)

    0d05fa27a8d13f8ea6b0f38a283a5d02.png

    3) 在后台(servlet)接收字符串(string2)时毫无疑问的乱码了。

    ) 这时需要将接收到的字符串(string2)根据iso-8859-1编码重新转换为byte流。再将byte流根据utf-8编码重新解码为字符串(sting3)。

    5) 这时的字符串(string3)和前台的字符串(string1)是对应同一个二进制流,并且使用的是同一种编码。也就不会乱码了。

    乱码的另一种解决办法:

    request.setcharacterencoding("utf-8"),这句话熟悉么,这句话的意思是:用"utf-8"编码对客户端的请求进行重新解码。

    在步骤2之后(或步骤3中)执行,那么接收到的参数也不会乱码啦。

    一个小例子:

    import java.io.unsupportedencodingexception;

    public class convertencodingformat {

    /**

    * 将一段错误解码的字符串重新解码

    */

    public static string convertencodingformat(string str, string formatfrom, string formatto) {

    string result = null;

    if (!(str == null || str.length() == 0)) {

    try {

    result = new string(str.getbytes(formatfrom), formatto);

    } catch (unsupportedencodingexception e) {

    e.printstacktrace();

    }

    }

    return result;

    }

    /**

    * test

    */

    public static void main(string[] args) {

    // utf-8编码

    string str = "你好,少年!";

    // utf-8编码的byte流强行用iso-8859-1解码,毫无疑问的乱码了

    string str1 = convertencodingformat(str, "utf-8", "iso-8859-1");

    system.out.println(str1);

    // 将str1再转化为byte流,重新用utf-8解码,乱码问题解决

    string str2 = convertencodingformat(str1, "iso-8859-1", "utf-8");

    system.out.println(str2);

    }

    }

    java字符串的各种编码转换

    import java.io.unsupportedencodingexception;

    /**

    * 转换字符串的编码

    */

    public class changecharset {

    /** 7位ascii字符,也叫作iso646-us、unicode字符集的基本拉丁块 */

    public static final string us_ascii = "us-ascii";

    /** iso 拉丁字母表 no.1,也叫作 iso-latin-1 */

    public static final string iso_8859_1 = "iso-8859-1";

    /** 8 位 ucs 转换格式 */

    public static final string utf_8 = "utf-8";

    /** 16 位 ucs 转换格式,big endian(最低地址存放高位字节)字节顺序 */

    public static final string utf_16be = "utf-16be";

    /** 16 位 ucs 转换格式,little-endian(最高地址存放低位字节)字节顺序 */

    public static final string utf_16le = "utf-16le";

    /** 16 位 ucs 转换格式,字节顺序由可选的字节顺序标记来标识 */

    public static final string utf_16 = "utf-16";

    /** 中文超大字符集 */

    public static final string gbk = "gbk";

    /**

    * 将字符编码转换成us-ascii码

    */

    public string toascii(string str) throws unsupportedencodingexception{

    return this.changecharset(str, us_ascii);

    }

    /**

    * 将字符编码转换成iso-8859-1码

    */

    public string toiso_8859_1(string str) throws unsupportedencodingexception{

    return this.changecharset(str, iso_8859_1);

    }

    /**

    * 将字符编码转换成utf-8码

    */

    public string toutf_8(string str) throws unsupportedencodingexception{

    return this.changecharset(str, utf_8);

    }

    /**

    * 将字符编码转换成utf-16be码

    */

    public string toutf_16be(string str) throws unsupportedencodingexception{

    return this.changecharset(str, utf_16be);

    }

    /**

    * 将字符编码转换成utf-16le码

    */

    public string toutf_16le(string str) throws unsupportedencodingexception{

    return this.changecharset(str, utf_16le);

    }

    /**

    * 将字符编码转换成utf-16码

    */

    public string toutf_16(string str) throws unsupportedencodingexception{

    return this.changecharset(str, utf_16);

    }

    /**

    * 将字符编码转换成gbk码

    */

    public string togbk(string str) throws unsupportedencodingexception{

    return this.changecharset(str, gbk);

    }

    /**

    * 字符串编码转换的实现方法

    * @param str 待转换编码的字符串

    * @param newcharset 目标编码

    * @return

    * @throws unsupportedencodingexception

    */

    public string changecharset(string str, string newcharset)

    throws unsupportedencodingexception {

    if (str != null) {

    //用默认字符编码解码字符串。

    byte[] bs = str.getbytes();

    //用新的字符编码生成字符串

    return new string(bs, newcharset);

    }

    return null;

    }

    /**

    * 字符串编码转换的实现方法

    * @param str 待转换编码的字符串

    * @param oldcharset 原编码

    * @param newcharset 目标编码

    * @return

    * @throws unsupportedencodingexception

    */

    public string changecharset(string str, string oldcharset, string newcharset)

    throws unsupportedencodingexception {

    if (str != null) {

    //用旧的字符编码解码字符串。解码可能会出现异常。

    byte[] bs = str.getbytes(oldcharset);

    //用新的字符编码生成字符串

    return new string(bs, newcharset);

    }

    return null;

    }

    public static void main(string[] args) throws unsupportedencodingexception {

    changecharset test = new changecharset();

    string str = "this is a 中文的 string!";

    system.out.println("str: " + str);

    string gbk = test.togbk(str);

    system.out.println("转换成gbk码: " + gbk);

    system.out.println();

    string ascii = test.toascii(str);

    system.out.println("转换成us-ascii码: " + ascii);

    gbk = test.changecharset(ascii,changecharset.us_ascii, changecharset.gbk);

    system.out.println("再把ascii码的字符串转换成gbk码: " + gbk);

    system.out.println();

    string iso88591 = test.toiso_8859_1(str);

    system.out.println("转换成iso-8859-1码: " + iso88591);

    gbk = test.changecharset(iso88591,changecharset.iso_8859_1, changecharset.gbk);

    system.out.println("再把iso-8859-1码的字符串转换成gbk码: " + gbk);

    system.out.println();

    string utf8 = test.toutf_8(str);

    system.out.println("转换成utf-8码: " + utf8);

    gbk = test.changecharset(utf8,changecharset.utf_8, changecharset.gbk);

    system.out.println("再把utf-8码的字符串转换成gbk码: " + gbk);

    system.out.println();

    string utf16be = test.toutf_16be(str);

    system.out.println("转换成utf-16be码:" + utf16be);

    gbk = test.changecharset(utf16be,changecharset.utf_16be, changecharset.gbk);

    system.out.println("再把utf-16be码的字符串转换成gbk码: " + gbk);

    system.out.println();

    string utf16le = test.toutf_16le(str);

    system.out.println("转换成utf-16le码:" + utf16le);

    gbk = test.changecharset(utf16le,changecharset.utf_16le, changecharset.gbk);

    system.out.println("再把utf-16le码的字符串转换成gbk码: " + gbk);

    system.out.println();

    string utf16 = test.toutf_16(str);

    system.out.println("转换成utf-16码:" + utf16);

    gbk = test.changecharset(utf16,changecharset.utf_16le, changecharset.gbk);

    system.out.println("再把utf-16码的字符串转换成gbk码: " + gbk);

    string s = new string("中文".getbytes("utf-8"),"utf-8");

    system.out.println(s);

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

    如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

    展开全文
  • 解决方案 Strings in java, AFAIK, do not retain their original encoding - they are always stored internally in some Unicode form. You want to detect the charset of the original stream/bytes - this is ...

    In my application I'm getting the user info from LDAP and sometimes the full username comes in a wrong charset. For example:

    ТеÑÑ61 ТеÑÑовиÑ61

    It can also be in English or in Russian and displayed correctly. If the username changes it's updated in database. Even if I change the value in the db it wont solve the problem.

    I can fix it before saving by doing this

    new String(incorrect.getBytes("ISO-8859-1"), "UTF-8");

    However, if I will use it for the string including characters in Russian (for ex., "Тест61 Тестович61") I get something like this "????61 ????????61".

    Can you please suggest something that can determine the charset of string?

    解决方案

    Strings in java, AFAIK, do not retain their original encoding - they are always stored internally in some Unicode form.

    You want to detect the charset of the original stream/bytes - this is why I think your String.toBytes() call is too late.

    Ideally if you could get the input stream you are reading from, you can run it through something like this: http://code.google.com/p/juniversalchardet/

    There are plenty of other charset detectors out there as well

    展开全文
  • 本文实例为大家分享了java字符串遍历,以及java统计字符串中各类字符的具体代码,供大家参考,具体内容如下1、需求:获取字符串中的每一个字符分析:A:如何能够拿到每一个字符呢?char charAt(int index)B:我怎么知道...
  • 首先,创建一个字符串集-SetsetStr=newHashSet<>(Arrays.asList("osCommerce","PrestaShop","Magento","Wordpres","Drupal"));现在,使用toArray()方法转换为字符串数组-String[]arrStr=setStr.toArray(new...
  • Java字符串中连续相同字符去重方法最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现。可是由于长时间没有编码了,而且由于原先的工作用到的比较少。具体的自己...
  • 详细内容在Java中将字符串集(Set)转换为字符串数组(String[])的方法有:使用for循环,使用Set.toArray()方法,使用Arrays.copyOf()方法等等。下面我们就来具体介绍一下,希望对大家有所帮助。方法一:使用for循环...
  • Java 字符集 编码

    2021-02-12 20:11:14
    Java 字符集 编码Java默认的字符集是Unicode(占两个字节byte,一个字节=8比特位bit)详解:字符集 编码Unicode 是「字符集」;UTF-8是「编码规则」(是使用最广的一种Unicode的实现方式)字符集:为每一个字符分配一个...
  • 题目描述输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和 cba。分析与解法解法一、递归实现从集合中依次选出每一个...
  • java字符串的比较

    2021-02-12 12:27:42
    在写java时遇到比较一个对象的字符串和一个字符串是否相等的问题,遇到了一些坑。在这段代码时,name1和name2的值都是"name",但是他们用==比较时确实不相等的。首先,在java中String是一个对象,在用==比较两个String...
  • 有时候我们会遇到要获取某段字符串的编码类型public static String getEncoding(String str) {String encode = "GB2312";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s = encode;...
  • 一、方法1、通过indexOf和substring这两个方法实现字符串分割实现逻辑:利用indexOf找出分割的字符在字符串中的位置,根据分割字符的位置切割字符串,再将分割好的字符串放进结果。实现代码如下:/*** @...
  • /*** 转换字符串的编码*/public class ChangeCharset {/**7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块*/public static final String US_ASCII = "US-ASCII";/**ISO 拉丁字母表 No.1...
  • Java如何连接字符串

    2021-02-12 09:27:42
    Java中的连接是将两个字符串连接在一起的操作。您可以使用加(+)运算符或String的concat ()方法来连接字符串。使用+运算符使用+运算符是在Java中连接两个字符串的最常用方法。您可以提供变量,数字或字符串文字(始终...
  • 具体示例代码如下:publicStringgetEncoding(String str) {String encode = "GB2312";try {if (str.equals(new String(str.getBytes(encode), encode))) {String s = encode;...
  • Java字符串的内部编码String类内部管理着一个char类型的数组,Java API是这样描述char基本类型的:char 数据类型(和 Character 对象封装的值)基于原始的 Unicode 规范,将字符定义为固定宽度的 16 位实体...
  • java转换字符串编码

    2021-03-03 11:29:03
    packagecom.Alex.base;.../*** 转换字符串的编码*/public classChangeCharset {/**7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块*/public static final String US_ASCII = "US-ASCII";/...
  • 字符与字符串转换操作2. 字节与字符串转换操作3. 判断操作4. 替换操作5. 字符串的截取6. 字符串的拆分7. 字符串的查找8. 字符串其他操作*/public class TestString1{public static void main(String[] args){/*1....
  • Java中将字符串转换为UTF-8字节

    千次阅读 2021-03-13 15:58:17
    在将String转换为UTF-8字节之前,让我们看一下UTF-8。UTF-8是可变宽度的字符编码。UTF-8具有与ASCII一样的压缩能力,但也可以包含任何Unicode...为了将String转换为UTF-8,我们使用getBytes()Java中的方法。该getB...
  • 目录1.String类2.StringBuilder...输入输出类6.java格式化输出1.String类从概念上讲,java字符串就是Unicode字符序列。String类提供处理Unicode代码点(即字符)的方法,以及用于处理Unicode代码单元(即char值)的方法...
  • Java字符串(String)

    2021-02-12 12:15:39
    Java中,可以使用下面的方法定义字符串:String stringName = "string content";例如:String url = "http://www.weixueyuan.net";String webName = "微学苑";字符串可以通过“+”连接,基本数据...
  • java字符串转utf8编码

    千次阅读 2021-02-28 14:13:07
    Java中ASC码与字符互相转化_... /** * Java 中 ASC 码与字符互相转化......JAVA 字符串转日期或日期转字符串(转) 2010-08-16 16:34:03| 分类: java |字号 订阅 JAVA 字符串转日期或日期转字符串(转) 文章中,用的 AP...
  • 我可以控制规则 如果我理解正确,您有两个String列表: getLine是代表输入行的字符串列表 addRule是代表规则字符串列表。 每个规则包含需要与输入行进行匹配的几部分,以及在匹配的情况下应使用的结果。 ...
  • Java字符串面试题

    2021-02-13 02:00:42
    String s1 = "java";StringBuffer s2 = new StringBuffer(s1);System.out.println(s1.equals(s2)); //1StringBuffer s3 = new StringBuffer("java");System.out.println(s3.equals("java")); ...
  • 使用正则表达式对字符串进行全部替换,表达式为: String reg = "(?s)'.*'"; 这里我们改写一下代码 Pattern p =Pattern.compile("(\\[标题BEGIN\\](.*)\\[标题END\\])",Pattern.DOTALL); 回车换行也能匹配了。 ...
  • 一、连接字符串1、连接多个字符串使用“+”运算符可以实现连接多个字符串的功能。“+” 运算符可以连接多个运算符并产生一个 String 对象。2、连接其他数据类型字符串与其他基本数据类型进行连接,会将这些数据直接...
  • java字符串删除空格 字符串操作最常在编程时完成。 就像删除字符串文本中或字符串周围的空格一样。 这也称为“剥离”字符串中的空格。 因此,到目前为止,我们都知道在Java中从字符串中删除空格的不同方法,即trim,...
  • I just want to add a space between each character of a string. Can anyone help me figuring out how to do this?E.g. given "JAYARAM", I need "J A Y A R A M" as the result.解决方案Unless you want to loop...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 248,388
精华内容 99,355
关键字:

java查询字符串的字符集

java 订阅