Java 如何从字符串中删除尾随字符

Java 如何从字符串中删除尾随字符,java,android,string,Java,Android,String,我有一个包含数据结构的文件。数据以字节形式存储。我想在屏幕上显示一个数据(人名)。名称的大小约为12个字符长。但数据可能少于或等于12个字符。我将字节数组转换为字符串和显示数据。当尝试使用system.out.println方法显示数据时,它会显示数据加上不需要的字符。如何仅显示所需数据 我尝试了以下代码 // here Name is a byte array title = new String( Name ); System.out.println("Title = " + title);

我有一个包含数据结构的文件。数据以字节形式存储。我想在屏幕上显示一个数据(人名)。名称的大小约为12个字符长。但数据可能少于或等于12个字符。我将字节数组转换为字符串和显示数据。当尝试使用system.out.println方法显示数据时,它会显示数据加上不需要的字符。如何仅显示所需数据

我尝试了以下代码

// here Name is a byte array
title = new String( Name );
System.out.println("Title = " + title);
我收到的输出是

    Title = area1����������
我只想要“区域1”。请提供解决方案

您尝试过吗

String decoded = new String(Name, "UTF-8"); 

也可以使用角色类执行此操作:

Character.isLetter(character);

但如果您需要检查多个字母,则不太方便。

使用
StringBuilder
类,通过追加从输入文件流读取的每个字符来构建字符串,直到到达文件末尾。到达文件末尾后,立即通过
StringBuilder
类的
toString()
方法返回字符串

StringBuilder sb = new StringBuilder();
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");//
int c = 0;
while ((c = isr.read()) != -1) {
    sb.append((char) c);
}
String fixedString = sb.toString();

请在此处找到更新的代码:

        // here Name is a byte array
    String title = new String( "area1����������");
    System.out.println("Title = " + title);

    StringBuilder sb = new StringBuilder(title);
    StringBuilder sb2 = new StringBuilder();
    for(int i=0;i<sb.length();i++)
    {
        if(Character.isLetterOrDigit(sb.charAt(i)))
        {
            sb2.append(sb.charAt(i));
        }
    }

    title = sb2.toString();
    System.out.println("Title = " + title);
//这里的名称是一个字节数组
字符串标题=新字符串(“区域1����������");
System.out.println(“Title=“+Title”);
StringBuilder sb=新StringBuilder(标题);
StringBuilder sb2=新的StringBuilder();
对于(int i=0;i

给出:
Title area1
,您还可以添加
.replaceAll(“\\”,”);
或根据需要调整正则表达式

您也可以尝试使用UTF-16LE或UTF-16BEthanks samir来编辑问题Title=新字符串(Name).trim();毫无疑问,我不想抑制“-”、“”、“/”这可能吗?@harekrishna-自然:将这些符号连接在正则表达式中的“”(空白)之后和“]”之前:([^A-Za-z0-9-/])”
StringBuilder sb = new StringBuilder();
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");//
int c = 0;
while ((c = isr.read()) != -1) {
    sb.append((char) c);
}
String fixedString = sb.toString();
        // here Name is a byte array
    String title = new String( "area1����������");
    System.out.println("Title = " + title);

    StringBuilder sb = new StringBuilder(title);
    StringBuilder sb2 = new StringBuilder();
    for(int i=0;i<sb.length();i++)
    {
        if(Character.isLetterOrDigit(sb.charAt(i)))
        {
            sb2.append(sb.charAt(i));
        }
    }

    title = sb2.toString();
    System.out.println("Title = " + title);
System.out.println("Title = area1����������".replaceAll("([^A-Za-z0-9 ])", ""));